diff --git a/0002-Add-LoongArch-Support-for-ObjectYAML.patch b/0002-Add-LoongArch-Support-for-ObjectYAML.patch new file mode 100644 index 0000000000000000000000000000000000000000..4cf0bb114fafe2225b9c8c4c7cbb5ab283fd9fb5 --- /dev/null +++ b/0002-Add-LoongArch-Support-for-ObjectYAML.patch @@ -0,0 +1,1983 @@ +diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +index 195c0e6a8..c8c219d44 100644 +--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp ++++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +@@ -9996,8 +9996,7 @@ void SelectionDAG::salvageDebugInfo(SDNode &N) { + case ISD::ADD: + SDValue N0 = N.getOperand(0); + SDValue N1 = N.getOperand(1); +- if (!isConstantIntBuildVectorOrConstantInt(N0) && +- isConstantIntBuildVectorOrConstantInt(N1)) { ++ if (!isa(N0) && isa(N1)) { + uint64_t Offset = N.getConstantOperandVal(1); + + // Rewrite an ADD constant node into a DIExpression. Since we are +diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp +index b778006cf..20600a334 100644 +--- a/llvm/lib/ObjectYAML/ELFYAML.cpp ++++ b/llvm/lib/ObjectYAML/ELFYAML.cpp +@@ -612,6 +612,11 @@ void ScalarBitSetTraits::bitset(IO &IO, + break; + } + 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: + break; + } +diff --git a/llvm/test/DebugInfo/X86/dbg-value-no-crash.ll b/llvm/test/DebugInfo/X86/dbg-value-no-crash.ll +new file mode 100644 +index 000000000..8ff055f13 +--- /dev/null ++++ b/llvm/test/DebugInfo/X86/dbg-value-no-crash.ll +@@ -0,0 +1,39 @@ ++; RUN: llc -mtriple=x86_64-unknown-linux-gnu -mattr=avx512bw,avx512vl -o - %s ++ ++;; Check this won't result in crash. ++define <8 x i32> @foo(ptr %0, <8 x i32> %1, i8 %2, i8 %3) { ++ %5 = call <8 x i32> @llvm.smax.v8i32(<8 x i32> %1, <8 x i32> zeroinitializer) ++ %6 = add nsw <8 x i32> %1, ++ call void @llvm.dbg.value(metadata <8 x i32> %6, metadata !4, metadata !DIExpression()), !dbg !15 ++ %7 = bitcast i8 %2 to <8 x i1> ++ %8 = select <8 x i1> %7, <8 x i32> %6, <8 x i32> %5 ++ %9 = call <8 x i32> @llvm.smax.v8i32(<8 x i32> %8, <8 x i32> zeroinitializer) ++ %10 = bitcast i8 %3 to <8 x i1> ++ %11 = select <8 x i1> %10, <8 x i32> %9, <8 x i32> ++ ret <8 x i32> %11 ++} ++ ++declare <8 x i32> @llvm.smax.v8i32(<8 x i32>, <8 x i32>) ++declare void @llvm.dbg.value(metadata, metadata, metadata) ++ ++!llvm.dbg.cu = !{!0} ++!llvm.module.flags = !{!3} ++ ++!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 16.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2) ++!1 = !DIFile(filename: "a.cpp", directory: "/") ++!2 = !{} ++!3 = !{i32 2, !"Debug Info Version", i32 3} ++!4 = !DILocalVariable(name: "a", arg: 2, scope: !5, file: !1, line: 12, type: !11) ++!5 = distinct !DISubprogram(name: "foo", scope: !6, file: !1, line: 12, type: !7, scopeLine: 12, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !9, retainedNodes: !10) ++!6 = !DINamespace(name: "ns1", scope: null) ++!7 = !DISubroutineType(types: !8) ++!8 = !{null} ++!9 = !DISubprogram(name: "foo", scope: !6, file: !1, line: 132, type: !7, scopeLine: 12, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized) ++!10 = !{!4} ++!11 = !DICompositeType(tag: DW_TAG_array_type, baseType: !12, size: 256, flags: DIFlagVector, elements: !13) ++!12 = !DIBasicType(name: "long long", size: 64, encoding: DW_ATE_signed) ++!13 = !{!14} ++!14 = !DISubrange(count: 4) ++!15 = !DILocation(line: 0, scope: !5, inlinedAt: !16) ++!16 = !DILocation(line: 18, scope: !17) ++!17 = distinct !DISubprogram(name: "foo", scope: null, file: !1, type: !7, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) +diff --git a/llvm/test/MC/Disassembler/LoongArch/lit.local.cfg b/llvm/test/MC/Disassembler/LoongArch/lit.local.cfg +new file mode 100644 +index 000000000..6223fc691 +--- /dev/null ++++ b/llvm/test/MC/Disassembler/LoongArch/lit.local.cfg +@@ -0,0 +1,3 @@ ++if not 'LoongArch' in config.root.targets: ++ config.unsupported = True ++ +diff --git a/llvm/test/MC/Disassembler/LoongArch/simd.txt b/llvm/test/MC/Disassembler/LoongArch/simd.txt +new file mode 100644 +index 000000000..90da1700a +--- /dev/null ++++ b/llvm/test/MC/Disassembler/LoongArch/simd.txt +@@ -0,0 +1,1361 @@ ++# RUN: llvm-mc --disassemble %s -triple=loongarch64-unknown-linux -mattr=+lsx,+lasx | FileCheck %s ++ ++0xcf 0x2a 0x19 0x09 # CHECK: vfmadd.s $vr15, $vr22, $vr10, $vr18 ++0x01 0x30 0x25 0x09 # CHECK: vfmadd.d $vr1, $vr0, $vr12, $vr10 ++0x50 0x36 0x54 0x09 # CHECK: vfmsub.s $vr16, $vr18, $vr13, $vr8 ++0xb9 0x05 0x6a 0x09 # CHECK: vfmsub.d $vr25, $vr13, $vr1, $vr20 ++0x56 0x44 0x9b 0x09 # CHECK: vfnmadd.s $vr22, $vr2, $vr17, $vr22 ++0xbc 0x0b 0xa7 0x09 # CHECK: vfnmadd.d $vr28, $vr29, $vr2, $vr14 ++0x93 0x44 0xdc 0x09 # CHECK: vfnmsub.s $vr19, $vr4, $vr17, $vr24 ++0xd8 0x72 0xef 0x09 # CHECK: vfnmsub.d $vr24, $vr22, $vr28, $vr30 ++0x8f 0xa7 0x17 0x0a # CHECK: xvfmadd.s $xr15, $xr28, $xr9, $xr15 ++0x05 0x33 0x25 0x0a # CHECK: xvfmadd.d $xr5, $xr24, $xr12, $xr10 ++0x14 0x6c 0x5d 0x0a # CHECK: xvfmsub.s $xr20, $xr0, $xr27, $xr26 ++0x0d 0x65 0x6d 0x0a # CHECK: xvfmsub.d $xr13, $xr8, $xr25, $xr26 ++0xce 0x59 0x94 0x0a # CHECK: xvfnmadd.s $xr14, $xr14, $xr22, $xr8 ++0x39 0x02 0xa2 0x0a # CHECK: xvfnmadd.d $xr25, $xr17, $xr0, $xr4 ++0x6b 0x80 0xd5 0x0a # CHECK: xvfnmsub.s $xr11, $xr3, $xr0, $xr11 ++0x62 0x60 0xeb 0x0a # CHECK: xvfnmsub.d $xr2, $xr3, $xr24, $xr22 ++0xfa 0x6d 0x52 0x0c # CHECK: vfcmp.ceq.s $vr26, $vr15, $vr27 ++0xb5 0x06 0x62 0x0c # CHECK: vfcmp.ceq.d $vr21, $vr21, $vr1 ++0x28 0x4d 0x92 0x0c # CHECK: xvfcmp.ceq.s $xr8, $xr9, $xr19 ++0x19 0x72 0xa2 0x0c # CHECK: xvfcmp.ceq.d $xr25, $xr16, $xr28 ++0xf4 0xf6 0x14 0x0d # CHECK: vbitsel.v $vr20, $vr23, $vr29, $vr9 ++0x47 0xf3 0x2b 0x0d # CHECK: xvbitsel.v $xr7, $xr26, $xr28, $xr23 ++0x8b 0x9c 0x54 0x0d # CHECK: vshuf.b $vr11, $vr4, $vr7, $vr9 ++0xb0 0x2a 0x66 0x0d # CHECK: xvshuf.b $xr16, $xr21, $xr10, $xr12 ++0x3c 0x0b 0x38 0x2c # CHECK: vld $vr28, $r25, -510 ++0xdc 0x3d 0x48 0x2c # CHECK: vst $vr28, $r14, 527 ++0xcb 0x00 0x88 0x2c # CHECK: xvld $xr11, $r6, 512 ++0xed 0xfc 0xd2 0x2c # CHECK: xvst $xr13, $r7, 1215 ++0x28 0xfd 0x14 0x30 # CHECK: vldrepl.d $vr8, $r9, -1544 ++0x22 0xd9 0x2e 0x30 # CHECK: vldrepl.w $vr2, $r9, -296 ++0xfc 0xfa 0x41 0x30 # CHECK: vldrepl.h $vr28, $r23, 252 ++0x25 0xad 0xb4 0x30 # CHECK: vldrepl.b $vr5, $r9, -725 ++0x57 0x57 0x15 0x31 # CHECK: vstelm.d $vr23, $r26, 680, 1 ++0xfe 0x8e 0x26 0x31 # CHECK: vstelm.w $vr30, $r23, -372, 1 ++0xcb 0x3c 0x5c 0x31 # CHECK: vstelm.h $vr11, $r6, 30, 7 ++0xe3 0xb1 0xb8 0x31 # CHECK: vstelm.b $vr3, $r15, 44, 14 ++0x18 0xa5 0x11 0x32 # CHECK: xvldrepl.d $xr24, $r8, 840 ++0x0e 0xef 0x21 0x32 # CHECK: xvldrepl.w $xr14, $r24, 492 ++0x32 0x49 0x46 0x32 # CHECK: xvldrepl.h $xr18, $r9, 804 ++0xa6 0xaf 0x8c 0x32 # CHECK: xvldrepl.b $xr6, $r29, 811 ++0x75 0x94 0x13 0x33 # CHECK: xvstelm.d $xr21, $sp, -216, 0 ++0xbf 0xab 0x21 0x33 # CHECK: xvstelm.w $xr31, $r29, 424, 0 ++0xee 0xb4 0x50 0x33 # CHECK: xvstelm.h $xr14, $r7, 90, 4 ++0x15 0xef 0xa3 0x33 # CHECK: xvstelm.b $xr21, $r24, -5, 8 ++0x9d 0x78 0x40 0x38 # CHECK: vldx $vr29, $r4, $r30 ++0x9f 0x77 0x44 0x38 # CHECK: vstx $vr31, $r28, $r29 ++0xc8 0x63 0x48 0x38 # CHECK: xvldx $xr8, $r30, $r24 ++0x22 0x75 0x4c 0x38 # CHECK: xvstx $xr2, $r9, $r29 ++0x5c 0x5f 0x00 0x70 # CHECK: vseq.b $vr28, $vr26, $vr23 ++0x2a 0x94 0x00 0x70 # CHECK: vseq.h $vr10, $vr1, $vr5 ++0x63 0x47 0x01 0x70 # CHECK: vseq.w $vr3, $vr27, $vr17 ++0x65 0x8c 0x01 0x70 # CHECK: vseq.d $vr5, $vr3, $vr3 ++0x3d 0x1d 0x02 0x70 # CHECK: vsle.b $vr29, $vr9, $vr7 ++0x05 0xa7 0x02 0x70 # CHECK: vsle.h $vr5, $vr24, $vr9 ++0xd1 0x53 0x03 0x70 # CHECK: vsle.w $vr17, $vr30, $vr20 ++0xdb 0xb4 0x03 0x70 # CHECK: vsle.d $vr27, $vr6, $vr13 ++0x7e 0x29 0x04 0x70 # CHECK: vsle.bu $vr30, $vr11, $vr10 ++0xb3 0xff 0x04 0x70 # CHECK: vsle.hu $vr19, $vr29, $vr31 ++0x50 0x52 0x05 0x70 # CHECK: vsle.wu $vr16, $vr18, $vr20 ++0x3f 0xa2 0x05 0x70 # CHECK: vsle.du $vr31, $vr17, $vr8 ++0xfa 0x14 0x06 0x70 # CHECK: vslt.b $vr26, $vr7, $vr5 ++0x4e 0xd0 0x06 0x70 # CHECK: vslt.h $vr14, $vr2, $vr20 ++0xae 0x64 0x07 0x70 # CHECK: vslt.w $vr14, $vr5, $vr25 ++0x3a 0xe5 0x07 0x70 # CHECK: vslt.d $vr26, $vr9, $vr25 ++0x5f 0x3a 0x08 0x70 # CHECK: vslt.bu $vr31, $vr18, $vr14 ++0xe5 0x95 0x08 0x70 # CHECK: vslt.hu $vr5, $vr15, $vr5 ++0x9f 0x37 0x09 0x70 # CHECK: vslt.wu $vr31, $vr28, $vr13 ++0x6b 0xda 0x09 0x70 # CHECK: vslt.du $vr11, $vr19, $vr22 ++0x9a 0x7e 0x0a 0x70 # CHECK: vadd.b $vr26, $vr20, $vr31 ++0x2b 0xf7 0x0a 0x70 # CHECK: vadd.h $vr11, $vr25, $vr29 ++0x27 0x37 0x0b 0x70 # CHECK: vadd.w $vr7, $vr25, $vr13 ++0xb0 0xc1 0x0b 0x70 # CHECK: vadd.d $vr16, $vr13, $vr16 ++0x6c 0x54 0x0c 0x70 # CHECK: vsub.b $vr12, $vr3, $vr21 ++0xaf 0xe5 0x0c 0x70 # CHECK: vsub.h $vr15, $vr13, $vr25 ++0x14 0x66 0x0d 0x70 # CHECK: vsub.w $vr20, $vr16, $vr25 ++0x73 0x9c 0x0d 0x70 # CHECK: vsub.d $vr19, $vr3, $vr7 ++0xce 0x17 0x46 0x70 # CHECK: vsadd.b $vr14, $vr30, $vr5 ++0x2a 0xbc 0x46 0x70 # CHECK: vsadd.h $vr10, $vr1, $vr15 ++0xf3 0x2b 0x47 0x70 # CHECK: vsadd.w $vr19, $vr31, $vr10 ++0x7a 0xf2 0x47 0x70 # CHECK: vsadd.d $vr26, $vr19, $vr28 ++0x78 0x1c 0x48 0x70 # CHECK: vssub.b $vr24, $vr3, $vr7 ++0x9f 0xe0 0x48 0x70 # CHECK: vssub.h $vr31, $vr4, $vr24 ++0x7d 0x33 0x49 0x70 # CHECK: vssub.w $vr29, $vr27, $vr12 ++0x17 0xa6 0x49 0x70 # CHECK: vssub.d $vr23, $vr16, $vr9 ++0xba 0x13 0x4a 0x70 # CHECK: vsadd.bu $vr26, $vr29, $vr4 ++0xef 0xa4 0x4a 0x70 # CHECK: vsadd.hu $vr15, $vr7, $vr9 ++0x4d 0x42 0x4b 0x70 # CHECK: vsadd.wu $vr13, $vr18, $vr16 ++0xa4 0x80 0x4b 0x70 # CHECK: vsadd.du $vr4, $vr5, $vr0 ++0x3b 0x36 0x4c 0x70 # CHECK: vssub.bu $vr27, $vr17, $vr13 ++0x05 0x85 0x4c 0x70 # CHECK: vssub.hu $vr5, $vr8, $vr1 ++0x0e 0x59 0x4d 0x70 # CHECK: vssub.wu $vr14, $vr8, $vr22 ++0x31 0xa1 0x4d 0x70 # CHECK: vssub.du $vr17, $vr9, $vr8 ++0x77 0x0a 0x54 0x70 # CHECK: vhaddw.h.b $vr23, $vr19, $vr2 ++0x1a 0xea 0x54 0x70 # CHECK: vhaddw.w.h $vr26, $vr16, $vr26 ++0xe0 0x6f 0x55 0x70 # CHECK: vhaddw.d.w $vr0, $vr31, $vr27 ++0xb9 0xe5 0x55 0x70 # CHECK: vhaddw.q.d $vr25, $vr13, $vr25 ++0xe9 0x16 0x56 0x70 # CHECK: vhsubw.h.b $vr9, $vr23, $vr5 ++0xaf 0xeb 0x56 0x70 # CHECK: vhsubw.w.h $vr15, $vr29, $vr26 ++0x80 0x4b 0x57 0x70 # CHECK: vhsubw.d.w $vr0, $vr28, $vr18 ++0x2e 0xa3 0x57 0x70 # CHECK: vhsubw.q.d $vr14, $vr25, $vr8 ++0x01 0x56 0x58 0x70 # CHECK: vhaddw.hu.bu $vr1, $vr16, $vr21 ++0xbc 0xf6 0x58 0x70 # CHECK: vhaddw.wu.hu $vr28, $vr21, $vr29 ++0x9d 0x42 0x59 0x70 # CHECK: vhaddw.du.wu $vr29, $vr20, $vr16 ++0x42 0xf1 0x59 0x70 # CHECK: vhaddw.qu.du $vr2, $vr10, $vr28 ++0x7f 0x78 0x5a 0x70 # CHECK: vhsubw.hu.bu $vr31, $vr3, $vr30 ++0x25 0xad 0x5a 0x70 # CHECK: vhsubw.wu.hu $vr5, $vr9, $vr11 ++0xf7 0x5b 0x5b 0x70 # CHECK: vhsubw.du.wu $vr23, $vr31, $vr22 ++0x84 0xcb 0x5b 0x70 # CHECK: vhsubw.qu.du $vr4, $vr28, $vr18 ++0xb2 0x2d 0x5c 0x70 # CHECK: vadda.b $vr18, $vr13, $vr11 ++0xd1 0xb1 0x5c 0x70 # CHECK: vadda.h $vr17, $vr14, $vr12 ++0x76 0x0d 0x5d 0x70 # CHECK: vadda.w $vr22, $vr11, $vr3 ++0x18 0xbf 0x5d 0x70 # CHECK: vadda.d $vr24, $vr24, $vr15 ++0x77 0x46 0x60 0x70 # CHECK: vabsd.b $vr23, $vr19, $vr17 ++0xee 0xb7 0x60 0x70 # CHECK: vabsd.h $vr14, $vr31, $vr13 ++0x38 0x24 0x61 0x70 # CHECK: vabsd.w $vr24, $vr1, $vr9 ++0x9f 0x82 0x61 0x70 # CHECK: vabsd.d $vr31, $vr20, $vr0 ++0x97 0x75 0x62 0x70 # CHECK: vabsd.bu $vr23, $vr12, $vr29 ++0x72 0x86 0x62 0x70 # CHECK: vabsd.hu $vr18, $vr19, $vr1 ++0xad 0x72 0x63 0x70 # CHECK: vabsd.wu $vr13, $vr21, $vr28 ++0x50 0xaf 0x63 0x70 # CHECK: vabsd.du $vr16, $vr26, $vr11 ++0xa1 0x6e 0x64 0x70 # CHECK: vavg.b $vr1, $vr21, $vr27 ++0x54 0xbf 0x64 0x70 # CHECK: vavg.h $vr20, $vr26, $vr15 ++0x5d 0x0e 0x65 0x70 # CHECK: vavg.w $vr29, $vr18, $vr3 ++0xf3 0xfd 0x65 0x70 # CHECK: vavg.d $vr19, $vr15, $vr31 ++0x6b 0x45 0x66 0x70 # CHECK: vavg.bu $vr11, $vr11, $vr17 ++0x9e 0xb7 0x66 0x70 # CHECK: vavg.hu $vr30, $vr28, $vr13 ++0xe7 0x28 0x67 0x70 # CHECK: vavg.wu $vr7, $vr7, $vr10 ++0xf9 0xb0 0x67 0x70 # CHECK: vavg.du $vr25, $vr7, $vr12 ++0xbd 0x1d 0x68 0x70 # CHECK: vavgr.b $vr29, $vr13, $vr7 ++0x85 0xcf 0x68 0x70 # CHECK: vavgr.h $vr5, $vr28, $vr19 ++0xf3 0x39 0x69 0x70 # CHECK: vavgr.w $vr19, $vr15, $vr14 ++0x03 0x88 0x69 0x70 # CHECK: vavgr.d $vr3, $vr0, $vr2 ++0x77 0x7d 0x6a 0x70 # CHECK: vavgr.bu $vr23, $vr11, $vr31 ++0x79 0xa2 0x6a 0x70 # CHECK: vavgr.hu $vr25, $vr19, $vr8 ++0x3e 0x33 0x6b 0x70 # CHECK: vavgr.wu $vr30, $vr25, $vr12 ++0x99 0xe6 0x6b 0x70 # CHECK: vavgr.du $vr25, $vr20, $vr25 ++0x5c 0x6b 0x70 0x70 # CHECK: vmax.b $vr28, $vr26, $vr26 ++0xa8 0xad 0x70 0x70 # CHECK: vmax.h $vr8, $vr13, $vr11 ++0x95 0x7f 0x71 0x70 # CHECK: vmax.w $vr21, $vr28, $vr31 ++0xc1 0xeb 0x71 0x70 # CHECK: vmax.d $vr1, $vr30, $vr26 ++0xca 0x25 0x72 0x70 # CHECK: vmin.b $vr10, $vr14, $vr9 ++0x6a 0xd5 0x72 0x70 # CHECK: vmin.h $vr10, $vr11, $vr21 ++0x1a 0x30 0x73 0x70 # CHECK: vmin.w $vr26, $vr0, $vr12 ++0x53 0x82 0x73 0x70 # CHECK: vmin.d $vr19, $vr18, $vr0 ++0x22 0x73 0x74 0x70 # CHECK: vmax.bu $vr2, $vr25, $vr28 ++0xc9 0xfa 0x74 0x70 # CHECK: vmax.hu $vr9, $vr22, $vr30 ++0x35 0x6f 0x75 0x70 # CHECK: vmax.wu $vr21, $vr25, $vr27 ++0xc3 0xe5 0x75 0x70 # CHECK: vmax.du $vr3, $vr14, $vr25 ++0xf8 0x6c 0x76 0x70 # CHECK: vmin.bu $vr24, $vr7, $vr27 ++0x92 0xf7 0x76 0x70 # CHECK: vmin.hu $vr18, $vr28, $vr29 ++0x9a 0x08 0x77 0x70 # CHECK: vmin.wu $vr26, $vr4, $vr2 ++0x0d 0x90 0x77 0x70 # CHECK: vmin.du $vr13, $vr0, $vr4 ++0xa1 0x5e 0x84 0x70 # CHECK: vmul.b $vr1, $vr21, $vr23 ++0xa9 0xe6 0x84 0x70 # CHECK: vmul.h $vr9, $vr21, $vr25 ++0x10 0x71 0x85 0x70 # CHECK: vmul.w $vr16, $vr8, $vr28 ++0x24 0xae 0x85 0x70 # CHECK: vmul.d $vr4, $vr17, $vr11 ++0x0c 0x23 0x86 0x70 # CHECK: vmuh.b $vr12, $vr24, $vr8 ++0xa6 0xe2 0x86 0x70 # CHECK: vmuh.h $vr6, $vr21, $vr24 ++0xab 0x7b 0x87 0x70 # CHECK: vmuh.w $vr11, $vr29, $vr30 ++0x21 0xe6 0x87 0x70 # CHECK: vmuh.d $vr1, $vr17, $vr25 ++0xbd 0x2b 0x88 0x70 # CHECK: vmuh.bu $vr29, $vr29, $vr10 ++0x38 0xd5 0x88 0x70 # CHECK: vmuh.hu $vr24, $vr9, $vr21 ++0x8f 0x4e 0x89 0x70 # CHECK: vmuh.wu $vr15, $vr20, $vr19 ++0x80 0x87 0x89 0x70 # CHECK: vmuh.du $vr0, $vr28, $vr1 ++0x1b 0x10 0xa8 0x70 # CHECK: vmadd.b $vr27, $vr0, $vr4 ++0x93 0xf2 0xa8 0x70 # CHECK: vmadd.h $vr19, $vr20, $vr28 ++0xef 0x0c 0xa9 0x70 # CHECK: vmadd.w $vr15, $vr7, $vr3 ++0x39 0xfb 0xa9 0x70 # CHECK: vmadd.d $vr25, $vr25, $vr30 ++0x38 0x6b 0xaa 0x70 # CHECK: vmsub.b $vr24, $vr25, $vr26 ++0x0c 0xb4 0xaa 0x70 # CHECK: vmsub.h $vr12, $vr0, $vr13 ++0x1a 0x62 0xab 0x70 # CHECK: vmsub.w $vr26, $vr16, $vr24 ++0x4d 0xa1 0xab 0x70 # CHECK: vmsub.d $vr13, $vr10, $vr8 ++0x92 0x57 0xe0 0x70 # CHECK: vdiv.b $vr18, $vr28, $vr21 ++0x11 0x87 0xe0 0x70 # CHECK: vdiv.h $vr17, $vr24, $vr1 ++0x43 0x59 0xe1 0x70 # CHECK: vdiv.w $vr3, $vr10, $vr22 ++0xaf 0xa1 0xe1 0x70 # CHECK: vdiv.d $vr15, $vr13, $vr8 ++0x33 0x53 0xe2 0x70 # CHECK: vmod.b $vr19, $vr25, $vr20 ++0x02 0xdb 0xe2 0x70 # CHECK: vmod.h $vr2, $vr24, $vr22 ++0x5f 0x02 0xe3 0x70 # CHECK: vmod.w $vr31, $vr18, $vr0 ++0x1f 0x88 0xe3 0x70 # CHECK: vmod.d $vr31, $vr0, $vr2 ++0x8f 0x0c 0xe4 0x70 # CHECK: vdiv.bu $vr15, $vr4, $vr3 ++0xf1 0xf4 0xe4 0x70 # CHECK: vdiv.hu $vr17, $vr7, $vr29 ++0x5b 0x0d 0xe5 0x70 # CHECK: vdiv.wu $vr27, $vr10, $vr3 ++0x08 0xeb 0xe5 0x70 # CHECK: vdiv.du $vr8, $vr24, $vr26 ++0xca 0x62 0xe6 0x70 # CHECK: vmod.bu $vr10, $vr22, $vr24 ++0xf3 0xe3 0xe6 0x70 # CHECK: vmod.hu $vr19, $vr31, $vr24 ++0x1a 0x37 0xe7 0x70 # CHECK: vmod.wu $vr26, $vr24, $vr13 ++0x74 0xaa 0xe7 0x70 # CHECK: vmod.du $vr20, $vr19, $vr10 ++0x5c 0x7a 0xe8 0x70 # CHECK: vsll.b $vr28, $vr18, $vr30 ++0x96 0xf8 0xe8 0x70 # CHECK: vsll.h $vr22, $vr4, $vr30 ++0x21 0x23 0xe9 0x70 # CHECK: vsll.w $vr1, $vr25, $vr8 ++0x5f 0xbe 0xe9 0x70 # CHECK: vsll.d $vr31, $vr18, $vr15 ++0x85 0x41 0xea 0x70 # CHECK: vsrl.b $vr5, $vr12, $vr16 ++0xa9 0xf0 0xea 0x70 # CHECK: vsrl.h $vr9, $vr5, $vr28 ++0x1e 0x06 0xeb 0x70 # CHECK: vsrl.w $vr30, $vr16, $vr1 ++0xfc 0xee 0xeb 0x70 # CHECK: vsrl.d $vr28, $vr23, $vr27 ++0x2f 0x66 0xec 0x70 # CHECK: vsra.b $vr15, $vr17, $vr25 ++0x00 0x95 0xec 0x70 # CHECK: vsra.h $vr0, $vr8, $vr5 ++0x3d 0x1d 0xed 0x70 # CHECK: vsra.w $vr29, $vr9, $vr7 ++0x76 0xcc 0xed 0x70 # CHECK: vsra.d $vr22, $vr3, $vr19 ++0x08 0x22 0xee 0x70 # CHECK: vrotr.b $vr8, $vr16, $vr8 ++0xae 0xac 0xee 0x70 # CHECK: vrotr.h $vr14, $vr5, $vr11 ++0x91 0x67 0xef 0x70 # CHECK: vrotr.w $vr17, $vr28, $vr25 ++0x92 0xcf 0xef 0x70 # CHECK: vrotr.d $vr18, $vr28, $vr19 ++0x61 0x47 0xf0 0x70 # CHECK: vsrlr.b $vr1, $vr27, $vr17 ++0xda 0xa9 0xf0 0x70 # CHECK: vsrlr.h $vr26, $vr14, $vr10 ++0xa3 0x63 0xf1 0x70 # CHECK: vsrlr.w $vr3, $vr29, $vr24 ++0x97 0xa8 0xf1 0x70 # CHECK: vsrlr.d $vr23, $vr4, $vr10 ++0x59 0x54 0xf2 0x70 # CHECK: vsrar.b $vr25, $vr2, $vr21 ++0x64 0xd1 0xf2 0x70 # CHECK: vsrar.h $vr4, $vr11, $vr20 ++0xab 0x76 0xf3 0x70 # CHECK: vsrar.w $vr11, $vr21, $vr29 ++0xbd 0x88 0xf3 0x70 # CHECK: vsrar.d $vr29, $vr5, $vr2 ++0xd8 0xf5 0xf4 0x70 # CHECK: vsrln.b.h $vr24, $vr14, $vr29 ++0xda 0x42 0xf5 0x70 # CHECK: vsrln.h.w $vr26, $vr22, $vr16 ++0xf1 0x8b 0xf5 0x70 # CHECK: vsrln.w.d $vr17, $vr31, $vr2 ++0x1f 0xdc 0xf6 0x70 # CHECK: vsran.b.h $vr31, $vr0, $vr23 ++0x94 0x75 0xf7 0x70 # CHECK: vsran.h.w $vr20, $vr12, $vr29 ++0x22 0x88 0xf7 0x70 # CHECK: vsran.w.d $vr2, $vr1, $vr2 ++0x93 0x83 0xf8 0x70 # CHECK: vsrlrn.b.h $vr19, $vr28, $vr0 ++0xb7 0x3b 0xf9 0x70 # CHECK: vsrlrn.h.w $vr23, $vr29, $vr14 ++0x45 0x97 0xf9 0x70 # CHECK: vsrlrn.w.d $vr5, $vr26, $vr5 ++0xf1 0x9d 0xfa 0x70 # CHECK: vsrarn.b.h $vr17, $vr15, $vr7 ++0x4c 0x75 0xfb 0x70 # CHECK: vsrarn.h.w $vr12, $vr10, $vr29 ++0x58 0xef 0xfb 0x70 # CHECK: vsrarn.w.d $vr24, $vr26, $vr27 ++0x81 0xb9 0xfc 0x70 # CHECK: vssrln.b.h $vr1, $vr12, $vr14 ++0x0b 0x49 0xfd 0x70 # CHECK: vssrln.h.w $vr11, $vr8, $vr18 ++0xff 0x99 0xfd 0x70 # CHECK: vssrln.w.d $vr31, $vr15, $vr6 ++0xad 0xe0 0xfe 0x70 # CHECK: vssran.b.h $vr13, $vr5, $vr24 ++0x44 0x1f 0xff 0x70 # CHECK: vssran.h.w $vr4, $vr26, $vr7 ++0x59 0x99 0xff 0x70 # CHECK: vssran.w.d $vr25, $vr10, $vr6 ++0x9c 0x9b 0x00 0x71 # CHECK: vssrlrn.b.h $vr28, $vr28, $vr6 ++0xef 0x46 0x01 0x71 # CHECK: vssrlrn.h.w $vr15, $vr23, $vr17 ++0x2c 0x89 0x01 0x71 # CHECK: vssrlrn.w.d $vr12, $vr9, $vr2 ++0x21 0xc7 0x02 0x71 # CHECK: vssrarn.b.h $vr1, $vr25, $vr17 ++0x23 0x5d 0x03 0x71 # CHECK: vssrarn.h.w $vr3, $vr9, $vr23 ++0x2e 0xed 0x03 0x71 # CHECK: vssrarn.w.d $vr14, $vr9, $vr27 ++0x10 0xbf 0x04 0x71 # CHECK: vssrln.bu.h $vr16, $vr24, $vr15 ++0xf5 0x7a 0x05 0x71 # CHECK: vssrln.hu.w $vr21, $vr23, $vr30 ++0x0c 0xf9 0x05 0x71 # CHECK: vssrln.wu.d $vr12, $vr8, $vr30 ++0x45 0xb2 0x06 0x71 # CHECK: vssran.bu.h $vr5, $vr18, $vr12 ++0xe0 0x70 0x07 0x71 # CHECK: vssran.hu.w $vr0, $vr7, $vr28 ++0x65 0xa1 0x07 0x71 # CHECK: vssran.wu.d $vr5, $vr11, $vr8 ++0x32 0x8f 0x08 0x71 # CHECK: vssrlrn.bu.h $vr18, $vr25, $vr3 ++0x33 0x50 0x09 0x71 # CHECK: vssrlrn.hu.w $vr19, $vr1, $vr20 ++0xc6 0xcb 0x09 0x71 # CHECK: vssrlrn.wu.d $vr6, $vr30, $vr18 ++0xac 0x8d 0x0a 0x71 # CHECK: vssrarn.bu.h $vr12, $vr13, $vr3 ++0xb2 0x50 0x0b 0x71 # CHECK: vssrarn.hu.w $vr18, $vr5, $vr20 ++0x17 0xd5 0x0b 0x71 # CHECK: vssrarn.wu.d $vr23, $vr8, $vr21 ++0x4e 0x7c 0x0c 0x71 # CHECK: vbitclr.b $vr14, $vr2, $vr31 ++0x31 0xa3 0x0c 0x71 # CHECK: vbitclr.h $vr17, $vr25, $vr8 ++0x72 0x0d 0x0d 0x71 # CHECK: vbitclr.w $vr18, $vr11, $vr3 ++0xff 0xf5 0x0d 0x71 # CHECK: vbitclr.d $vr31, $vr15, $vr29 ++0xa8 0x43 0x0e 0x71 # CHECK: vbitset.b $vr8, $vr29, $vr16 ++0x25 0xc6 0x0e 0x71 # CHECK: vbitset.h $vr5, $vr17, $vr17 ++0x65 0x16 0x0f 0x71 # CHECK: vbitset.w $vr5, $vr19, $vr5 ++0x65 0xab 0x0f 0x71 # CHECK: vbitset.d $vr5, $vr27, $vr10 ++0xb0 0x20 0x10 0x71 # CHECK: vbitrev.b $vr16, $vr5, $vr8 ++0xac 0xb3 0x10 0x71 # CHECK: vbitrev.h $vr12, $vr29, $vr12 ++0xc3 0x39 0x11 0x71 # CHECK: vbitrev.w $vr3, $vr14, $vr14 ++0x7f 0xbb 0x11 0x71 # CHECK: vbitrev.d $vr31, $vr27, $vr14 ++0x16 0x4f 0x16 0x71 # CHECK: vpackev.b $vr22, $vr24, $vr19 ++0x5c 0xc8 0x16 0x71 # CHECK: vpackev.h $vr28, $vr2, $vr18 ++0x75 0x10 0x17 0x71 # CHECK: vpackev.w $vr21, $vr3, $vr4 ++0xb8 0xae 0x17 0x71 # CHECK: vpackev.d $vr24, $vr21, $vr11 ++0xec 0x6b 0x18 0x71 # CHECK: vpackod.b $vr12, $vr31, $vr26 ++0x79 0xc0 0x18 0x71 # CHECK: vpackod.h $vr25, $vr3, $vr16 ++0x55 0x3e 0x19 0x71 # CHECK: vpackod.w $vr21, $vr18, $vr15 ++0x62 0x80 0x19 0x71 # CHECK: vpackod.d $vr2, $vr3, $vr0 ++0x08 0x71 0x1a 0x71 # CHECK: vilvl.b $vr8, $vr8, $vr28 ++0x14 0xfc 0x1a 0x71 # CHECK: vilvl.h $vr20, $vr0, $vr31 ++0x4b 0x45 0x1b 0x71 # CHECK: vilvl.w $vr11, $vr10, $vr17 ++0xe7 0x84 0x1b 0x71 # CHECK: vilvl.d $vr7, $vr7, $vr1 ++0x6b 0x05 0x1c 0x71 # CHECK: vilvh.b $vr11, $vr11, $vr1 ++0xe0 0xb7 0x1c 0x71 # CHECK: vilvh.h $vr0, $vr31, $vr13 ++0xbc 0x1e 0x1d 0x71 # CHECK: vilvh.w $vr28, $vr21, $vr7 ++0x77 0xcc 0x1d 0x71 # CHECK: vilvh.d $vr23, $vr3, $vr19 ++0xa1 0x22 0x1e 0x71 # CHECK: vpickev.b $vr1, $vr21, $vr8 ++0x30 0xa4 0x1e 0x71 # CHECK: vpickev.h $vr16, $vr1, $vr9 ++0xad 0x11 0x1f 0x71 # CHECK: vpickev.w $vr13, $vr13, $vr4 ++0xcb 0xfb 0x1f 0x71 # CHECK: vpickev.d $vr11, $vr30, $vr30 ++0x67 0x35 0x20 0x71 # CHECK: vpickod.b $vr7, $vr11, $vr13 ++0x72 0x84 0x20 0x71 # CHECK: vpickod.h $vr18, $vr3, $vr1 ++0x03 0x4e 0x21 0x71 # CHECK: vpickod.w $vr3, $vr16, $vr19 ++0xac 0xd5 0x21 0x71 # CHECK: vpickod.d $vr12, $vr13, $vr21 ++0x2f 0x4e 0x22 0x71 # CHECK: vreplve.b $vr15, $vr17, $r19 ++0xee 0x92 0x22 0x71 # CHECK: vreplve.h $vr14, $vr23, $r4 ++0x7d 0x6e 0x23 0x71 # CHECK: vreplve.w $vr29, $vr19, $r27 ++0x8d 0xd2 0x23 0x71 # CHECK: vreplve.d $vr13, $vr20, $r20 ++0x59 0x54 0x26 0x71 # CHECK: vand.v $vr25, $vr2, $vr21 ++0x64 0xc3 0x26 0x71 # CHECK: vor.v $vr4, $vr27, $vr16 ++0x3e 0x13 0x27 0x71 # CHECK: vxor.v $vr30, $vr25, $vr4 ++0x49 0xd8 0x27 0x71 # CHECK: vnor.v $vr9, $vr2, $vr22 ++0x54 0x13 0x28 0x71 # CHECK: vandn.v $vr20, $vr26, $vr4 ++0xa6 0xfa 0x28 0x71 # CHECK: vorn.v $vr6, $vr21, $vr30 ++0x2b 0x35 0x2b 0x71 # CHECK: vfrstp.b $vr11, $vr9, $vr13 ++0x55 0xdb 0x2b 0x71 # CHECK: vfrstp.h $vr21, $vr26, $vr22 ++0xe9 0x40 0x2d 0x71 # CHECK: vadd.q $vr9, $vr7, $vr16 ++0x22 0xc0 0x2d 0x71 # CHECK: vsub.q $vr2, $vr1, $vr16 ++0x42 0x38 0x2e 0x71 # CHECK: vsigncov.b $vr2, $vr2, $vr14 ++0xb5 0xb6 0x2e 0x71 # CHECK: vsigncov.h $vr21, $vr21, $vr13 ++0xf5 0x14 0x2f 0x71 # CHECK: vsigncov.w $vr21, $vr7, $vr5 ++0x4a 0x8d 0x2f 0x71 # CHECK: vsigncov.d $vr10, $vr10, $vr3 ++0x8a 0x84 0x30 0x71 # CHECK: vfadd.s $vr10, $vr4, $vr1 ++0x6f 0x0b 0x31 0x71 # CHECK: vfadd.d $vr15, $vr27, $vr2 ++0x0e 0xa6 0x32 0x71 # CHECK: vfsub.s $vr14, $vr16, $vr9 ++0x24 0x20 0x33 0x71 # CHECK: vfsub.d $vr4, $vr1, $vr8 ++0x40 0x9a 0x38 0x71 # CHECK: vfmul.s $vr0, $vr18, $vr6 ++0xfb 0x7b 0x39 0x71 # CHECK: vfmul.d $vr27, $vr31, $vr30 ++0xe3 0x98 0x3a 0x71 # CHECK: vfdiv.s $vr3, $vr7, $vr6 ++0xd0 0x78 0x3b 0x71 # CHECK: vfdiv.d $vr16, $vr6, $vr30 ++0xd2 0xa3 0x3c 0x71 # CHECK: vfmax.s $vr18, $vr30, $vr8 ++0x13 0x61 0x3d 0x71 # CHECK: vfmax.d $vr19, $vr8, $vr24 ++0x58 0x9b 0x3e 0x71 # CHECK: vfmin.s $vr24, $vr26, $vr6 ++0x30 0x07 0x3f 0x71 # CHECK: vfmin.d $vr16, $vr25, $vr1 ++0xe8 0xb8 0x40 0x71 # CHECK: vfmaxa.s $vr8, $vr7, $vr14 ++0x0a 0x11 0x41 0x71 # CHECK: vfmaxa.d $vr10, $vr8, $vr4 ++0xd0 0xc8 0x42 0x71 # CHECK: vfmina.s $vr16, $vr6, $vr18 ++0xfa 0x38 0x43 0x71 # CHECK: vfmina.d $vr26, $vr7, $vr14 ++0x9e 0x60 0x46 0x71 # CHECK: vfcvt.h.s $vr30, $vr4, $vr24 ++0x30 0x92 0x46 0x71 # CHECK: vfcvt.s.d $vr16, $vr17, $vr4 ++0xf9 0x2a 0x48 0x71 # CHECK: vffint.s.l $vr25, $vr23, $vr10 ++0xc9 0xee 0x49 0x71 # CHECK: vftint.w.d $vr9, $vr22, $vr27 ++0x5f 0x75 0x4a 0x71 # CHECK: vftintrm.w.d $vr31, $vr10, $vr29 ++0xb7 0xbd 0x4a 0x71 # CHECK: vftintrp.w.d $vr23, $vr13, $vr15 ++0x32 0x19 0x4b 0x71 # CHECK: vftintrz.w.d $vr18, $vr9, $vr6 ++0x95 0xf9 0x4b 0x71 # CHECK: vftintrne.w.d $vr21, $vr12, $vr30 ++0x63 0x89 0x7a 0x71 # CHECK: vshuf.h $vr3, $vr11, $vr2 ++0x95 0x74 0x7b 0x71 # CHECK: vshuf.w $vr21, $vr4, $vr29 ++0xeb 0xca 0x7b 0x71 # CHECK: vshuf.d $vr11, $vr23, $vr18 ++0xdb 0x1d 0x80 0x72 # CHECK: vseqi.b $vr27, $vr14, 7 ++0x77 0xeb 0x80 0x72 # CHECK: vseqi.h $vr23, $vr27, -6 ++0x08 0x41 0x81 0x72 # CHECK: vseqi.w $vr8, $vr8, -16 ++0xab 0x94 0x81 0x72 # CHECK: vseqi.d $vr11, $vr5, 5 ++0x68 0x1f 0x82 0x72 # CHECK: vslei.b $vr8, $vr27, 7 ++0xbb 0xef 0x82 0x72 # CHECK: vslei.h $vr27, $vr29, -5 ++0xb7 0x75 0x83 0x72 # CHECK: vslei.w $vr23, $vr13, -3 ++0xe5 0xe1 0x83 0x72 # CHECK: vslei.d $vr5, $vr15, -8 ++0x5d 0x25 0x84 0x72 # CHECK: vslei.bu $vr29, $vr10, 9 ++0x5d 0xae 0x84 0x72 # CHECK: vslei.hu $vr29, $vr18, 11 ++0x28 0x08 0x85 0x72 # CHECK: vslei.wu $vr8, $vr1, 2 ++0xb0 0xa8 0x85 0x72 # CHECK: vslei.du $vr16, $vr5, 10 ++0x88 0x78 0x86 0x72 # CHECK: vslti.b $vr8, $vr4, -2 ++0xfa 0xc8 0x86 0x72 # CHECK: vslti.h $vr26, $vr7, -14 ++0x1c 0x31 0x87 0x72 # CHECK: vslti.w $vr28, $vr8, 12 ++0x64 0xa7 0x87 0x72 # CHECK: vslti.d $vr4, $vr27, 9 ++0xca 0x49 0x88 0x72 # CHECK: vslti.bu $vr10, $vr14, 18 ++0x9c 0xfb 0x88 0x72 # CHECK: vslti.hu $vr28, $vr28, 30 ++0x6f 0x6f 0x89 0x72 # CHECK: vslti.wu $vr15, $vr27, 27 ++0x3e 0xce 0x89 0x72 # CHECK: vslti.du $vr30, $vr17, 19 ++0x26 0x48 0x8a 0x72 # CHECK: vaddi.bu $vr6, $vr1, 18 ++0xcc 0x95 0x8a 0x72 # CHECK: vaddi.hu $vr12, $vr14, 5 ++0x1c 0x68 0x8b 0x72 # CHECK: vaddi.wu $vr28, $vr0, 26 ++0xaa 0x88 0x8b 0x72 # CHECK: vaddi.du $vr10, $vr5, 2 ++0x96 0x0b 0x8c 0x72 # CHECK: vsubi.bu $vr22, $vr28, 2 ++0xc0 0xfe 0x8c 0x72 # CHECK: vsubi.hu $vr0, $vr22, 31 ++0xd4 0x14 0x8d 0x72 # CHECK: vsubi.wu $vr20, $vr6, 5 ++0x72 0x85 0x8d 0x72 # CHECK: vsubi.du $vr18, $vr11, 1 ++0x44 0x13 0x8e 0x72 # CHECK: vbsll.v $vr4, $vr26, 4 ++0xe7 0xbf 0x8e 0x72 # CHECK: vbsrl.v $vr7, $vr31, 15 ++0xf3 0x39 0x90 0x72 # CHECK: vmaxi.b $vr19, $vr15, 14 ++0x79 0xd0 0x90 0x72 # CHECK: vmaxi.h $vr25, $vr3, -12 ++0x34 0x17 0x91 0x72 # CHECK: vmaxi.w $vr20, $vr25, 5 ++0x49 0xb1 0x91 0x72 # CHECK: vmaxi.d $vr9, $vr10, 12 ++0xbe 0x72 0x92 0x72 # CHECK: vmini.b $vr30, $vr21, -4 ++0x8b 0xf7 0x92 0x72 # CHECK: vmini.h $vr11, $vr28, -3 ++0x26 0x5f 0x93 0x72 # CHECK: vmini.w $vr6, $vr25, -9 ++0x1c 0x89 0x93 0x72 # CHECK: vmini.d $vr28, $vr8, 2 ++0x0d 0x4f 0x94 0x72 # CHECK: vmaxi.bu $vr13, $vr24, 19 ++0x23 0xd8 0x94 0x72 # CHECK: vmaxi.hu $vr3, $vr1, 22 ++0x61 0x5c 0x95 0x72 # CHECK: vmaxi.wu $vr1, $vr3, 23 ++0x46 0xd6 0x95 0x72 # CHECK: vmaxi.du $vr6, $vr18, 21 ++0x4a 0x50 0x96 0x72 # CHECK: vmini.bu $vr10, $vr2, 20 ++0x31 0xbe 0x96 0x72 # CHECK: vmini.hu $vr17, $vr17, 15 ++0x7a 0x5f 0x97 0x72 # CHECK: vmini.wu $vr26, $vr27, 23 ++0x6c 0xa3 0x97 0x72 # CHECK: vmini.du $vr12, $vr27, 8 ++0x1a 0x25 0x9a 0x72 # CHECK: vfrstpi.b $vr26, $vr8, 9 ++0x50 0xd0 0x9a 0x72 # CHECK: vfrstpi.h $vr16, $vr2, 20 ++0x25 0x02 0x9c 0x72 # CHECK: vclo.b $vr5, $vr17 ++0x88 0x04 0x9c 0x72 # CHECK: vclo.h $vr8, $vr4 ++0xa1 0x09 0x9c 0x72 # CHECK: vclo.w $vr1, $vr13 ++0xe0 0x0e 0x9c 0x72 # CHECK: vclo.d $vr0, $vr23 ++0x24 0x13 0x9c 0x72 # CHECK: vclz.b $vr4, $vr25 ++0x21 0x17 0x9c 0x72 # CHECK: vclz.h $vr1, $vr25 ++0xa1 0x18 0x9c 0x72 # CHECK: vclz.w $vr1, $vr5 ++0x30 0x1e 0x9c 0x72 # CHECK: vclz.d $vr16, $vr17 ++0x64 0x20 0x9c 0x72 # CHECK: vpcnt.b $vr4, $vr3 ++0x2f 0x26 0x9c 0x72 # CHECK: vpcnt.h $vr15, $vr17 ++0x0d 0x29 0x9c 0x72 # CHECK: vpcnt.w $vr13, $vr8 ++0x00 0x2d 0x9c 0x72 # CHECK: vpcnt.d $vr0, $vr8 ++0x0e 0x33 0x9c 0x72 # CHECK: vneg.b $vr14, $vr24 ++0xf8 0x34 0x9c 0x72 # CHECK: vneg.h $vr24, $vr7 ++0xb3 0x38 0x9c 0x72 # CHECK: vneg.w $vr19, $vr5 ++0x83 0x3f 0x9c 0x72 # CHECK: vneg.d $vr3, $vr28 ++0x3f 0x43 0x9c 0x72 # CHECK: vmskltz.b $vr31, $vr25 ++0x89 0x46 0x9c 0x72 # CHECK: vmskltz.h $vr9, $vr20 ++0x56 0x4b 0x9c 0x72 # CHECK: vmskltz.w $vr22, $vr26 ++0x5c 0x4d 0x9c 0x72 # CHECK: vmskltz.d $vr28, $vr10 ++0xa7 0x50 0x9c 0x72 # CHECK: vmskgez.b $vr7, $vr5 ++0x94 0x61 0x9c 0x72 # CHECK: vmsknz.b $vr20, $vr12 ++0xc5 0x99 0x9c 0x72 # CHECK: vseteqz.v $fcc5, $vr14 ++0x02 0x9d 0x9c 0x72 # CHECK: vsetnez.v $fcc2, $vr8 ++0x80 0xa2 0x9c 0x72 # CHECK: vsetanyeqz.b $fcc0, $vr20 ++0x04 0xa6 0x9c 0x72 # CHECK: vsetanyeqz.h $fcc4, $vr16 ++0x47 0xa8 0x9c 0x72 # CHECK: vsetanyeqz.w $fcc7, $vr2 ++0x84 0xad 0x9c 0x72 # CHECK: vsetanyeqz.d $fcc4, $vr12 ++0x07 0xb0 0x9c 0x72 # CHECK: vsetallnez.b $fcc7, $vr0 ++0x62 0xb5 0x9c 0x72 # CHECK: vsetallnez.h $fcc2, $vr11 ++0x26 0xbb 0x9c 0x72 # CHECK: vsetallnez.w $fcc6, $vr25 ++0xe7 0xbf 0x9c 0x72 # CHECK: vsetallnez.d $fcc7, $vr31 ++0x8e 0xc7 0x9c 0x72 # CHECK: vflogb.s $vr14, $vr28 ++0x3d 0xc9 0x9c 0x72 # CHECK: vflogb.d $vr29, $vr9 ++0xa3 0xd5 0x9c 0x72 # CHECK: vfclass.s $vr3, $vr13 ++0xe5 0xd9 0x9c 0x72 # CHECK: vfclass.d $vr5, $vr15 ++0x73 0xe7 0x9c 0x72 # CHECK: vfsqrt.s $vr19, $vr27 ++0x7f 0xe8 0x9c 0x72 # CHECK: vfsqrt.d $vr31, $vr3 ++0x18 0xf6 0x9c 0x72 # CHECK: vfrecip.s $vr24, $vr16 ++0x77 0xfa 0x9c 0x72 # CHECK: vfrecip.d $vr23, $vr19 ++0xf2 0x05 0x9d 0x72 # CHECK: vfrsqrt.s $vr18, $vr15 ++0xf2 0x0b 0x9d 0x72 # CHECK: vfrsqrt.d $vr18, $vr31 ++0x7a 0x35 0x9d 0x72 # CHECK: vfrint.s $vr26, $vr11 ++0x58 0x3a 0x9d 0x72 # CHECK: vfrint.d $vr24, $vr18 ++0x65 0x44 0x9d 0x72 # CHECK: vfrintrm.s $vr5, $vr3 ++0x57 0x49 0x9d 0x72 # CHECK: vfrintrm.d $vr23, $vr10 ++0x54 0x54 0x9d 0x72 # CHECK: vfrintrp.s $vr20, $vr2 ++0x3e 0x5a 0x9d 0x72 # CHECK: vfrintrp.d $vr30, $vr17 ++0xd3 0x64 0x9d 0x72 # CHECK: vfrintrz.s $vr19, $vr6 ++0x50 0x6a 0x9d 0x72 # CHECK: vfrintrz.d $vr16, $vr18 ++0x08 0x77 0x9d 0x72 # CHECK: vfrintrne.s $vr8, $vr24 ++0xa6 0x78 0x9d 0x72 # CHECK: vfrintrne.d $vr6, $vr5 ++0xc4 0xe8 0x9d 0x72 # CHECK: vfcvtl.s.h $vr4, $vr6 ++0xf0 0xec 0x9d 0x72 # CHECK: vfcvth.s.h $vr16, $vr7 ++0x50 0xf1 0x9d 0x72 # CHECK: vfcvtl.d.s $vr16, $vr10 ++0x3c 0xf7 0x9d 0x72 # CHECK: vfcvth.d.s $vr28, $vr25 ++0x1c 0x02 0x9e 0x72 # CHECK: vffint.s.w $vr28, $vr16 ++0xe4 0x07 0x9e 0x72 # CHECK: vffint.s.wu $vr4, $vr31 ++0x32 0x0b 0x9e 0x72 # CHECK: vffint.d.l $vr18, $vr25 ++0x38 0x0e 0x9e 0x72 # CHECK: vffint.d.lu $vr24, $vr17 ++0x62 0x13 0x9e 0x72 # CHECK: vffintl.d.w $vr2, $vr27 ++0x04 0x16 0x9e 0x72 # CHECK: vffinth.d.w $vr4, $vr16 ++0x11 0x30 0x9e 0x72 # CHECK: vftint.w.s $vr17, $vr0 ++0x57 0x36 0x9e 0x72 # CHECK: vftint.l.d $vr23, $vr18 ++0x97 0x38 0x9e 0x72 # CHECK: vftintrm.w.s $vr23, $vr4 ++0xde 0x3d 0x9e 0x72 # CHECK: vftintrm.l.d $vr30, $vr14 ++0x07 0x40 0x9e 0x72 # CHECK: vftintrp.w.s $vr7, $vr0 ++0x9c 0x46 0x9e 0x72 # CHECK: vftintrp.l.d $vr28, $vr20 ++0xfc 0x4b 0x9e 0x72 # CHECK: vftintrz.w.s $vr28, $vr31 ++0x12 0x4c 0x9e 0x72 # CHECK: vftintrz.l.d $vr18, $vr0 ++0x2e 0x52 0x9e 0x72 # CHECK: vftintrne.w.s $vr14, $vr17 ++0x56 0x56 0x9e 0x72 # CHECK: vftintrne.l.d $vr22, $vr18 ++0x3a 0x5b 0x9e 0x72 # CHECK: vftint.wu.s $vr26, $vr25 ++0x69 0x5f 0x9e 0x72 # CHECK: vftint.lu.d $vr9, $vr27 ++0xda 0x72 0x9e 0x72 # CHECK: vftintrz.wu.s $vr26, $vr22 ++0x9d 0x76 0x9e 0x72 # CHECK: vftintrz.lu.d $vr29, $vr20 ++0x36 0x80 0x9e 0x72 # CHECK: vftintl.l.s $vr22, $vr1 ++0x0d 0x87 0x9e 0x72 # CHECK: vftinth.l.s $vr13, $vr24 ++0x68 0x8b 0x9e 0x72 # CHECK: vftintrml.l.s $vr8, $vr27 ++0x92 0x8f 0x9e 0x72 # CHECK: vftintrmh.l.s $vr18, $vr28 ++0x9b 0x93 0x9e 0x72 # CHECK: vftintrpl.l.s $vr27, $vr28 ++0xf4 0x94 0x9e 0x72 # CHECK: vftintrph.l.s $vr20, $vr7 ++0x46 0x98 0x9e 0x72 # CHECK: vftintrzl.l.s $vr6, $vr2 ++0xd5 0x9c 0x9e 0x72 # CHECK: vftintrzh.l.s $vr21, $vr6 ++0x79 0xa0 0x9e 0x72 # CHECK: vftintrnel.l.s $vr25, $vr3 ++0xa7 0xa4 0x9e 0x72 # CHECK: vftintrneh.l.s $vr7, $vr5 ++0x49 0xe0 0x9e 0x72 # CHECK: vexth.h.b $vr9, $vr2 ++0x64 0xe7 0x9e 0x72 # CHECK: vexth.w.h $vr4, $vr27 ++0x37 0xe8 0x9e 0x72 # CHECK: vexth.d.w $vr23, $vr1 ++0xcf 0xec 0x9e 0x72 # CHECK: vexth.q.d $vr15, $vr6 ++0x43 0xf0 0x9e 0x72 # CHECK: vexth.hu.bu $vr3, $vr2 ++0x5f 0xf7 0x9e 0x72 # CHECK: vexth.wu.hu $vr31, $vr26 ++0xea 0xfb 0x9e 0x72 # CHECK: vexth.du.wu $vr10, $vr31 ++0x1c 0xfd 0x9e 0x72 # CHECK: vexth.qu.du $vr28, $vr8 ++0x6f 0x00 0x9f 0x72 # CHECK: vreplgr2vr.b $vr15, $sp ++0xea 0x06 0x9f 0x72 # CHECK: vreplgr2vr.h $vr10, $r23 ++0x19 0x0a 0x9f 0x72 # CHECK: vreplgr2vr.w $vr25, $r16 ++0xfb 0x0c 0x9f 0x72 # CHECK: vreplgr2vr.d $vr27, $r7 ++0x18 0x3f 0xa0 0x72 # CHECK: vrotri.b $vr24, $vr24, 7 ++0xa1 0x40 0xa0 0x72 # CHECK: vrotri.h $vr1, $vr5, 0 ++0x0a 0xb1 0xa0 0x72 # CHECK: vrotri.w $vr10, $vr8, 12 ++0xbe 0xab 0xa1 0x72 # CHECK: vrotri.d $vr30, $vr29, 42 ++0x01 0x2e 0xa4 0x72 # CHECK: vsrlri.b $vr1, $vr16, 3 ++0xbc 0x46 0xa4 0x72 # CHECK: vsrlri.h $vr28, $vr21, 1 ++0x92 0xbc 0xa4 0x72 # CHECK: vsrlri.w $vr18, $vr4, 15 ++0x7e 0x4c 0xa5 0x72 # CHECK: vsrlri.d $vr30, $vr3, 19 ++0x0d 0x3c 0xa8 0x72 # CHECK: vsrari.b $vr13, $vr0, 7 ++0x31 0x59 0xa8 0x72 # CHECK: vsrari.h $vr17, $vr9, 6 ++0x83 0x9b 0xa8 0x72 # CHECK: vsrari.w $vr3, $vr28, 6 ++0x44 0x88 0xa9 0x72 # CHECK: vsrari.d $vr4, $vr2, 34 ++0x08 0x91 0xeb 0x72 # CHECK: vinsgr2vr.b $vr8, $r8, 4 ++0xed 0xc4 0xeb 0x72 # CHECK: vinsgr2vr.h $vr13, $r7, 1 ++0xc4 0xec 0xeb 0x72 # CHECK: vinsgr2vr.w $vr4, $r6, 3 ++0xf7 0xf3 0xeb 0x72 # CHECK: vinsgr2vr.d $vr23, $r31, 0 ++0x18 0xaa 0xef 0x72 # CHECK: vpickve2gr.b $r24, $vr16, 10 ++0x31 0xcf 0xef 0x72 # CHECK: vpickve2gr.h $r17, $vr25, 3 ++0x9e 0xeb 0xef 0x72 # CHECK: vpickve2gr.w $r30, $vr28, 2 ++0x39 0xf5 0xef 0x72 # CHECK: vpickve2gr.d $r25, $vr9, 1 ++0xdf 0x89 0xf3 0x72 # CHECK: vpickve2gr.bu $r31, $vr14, 2 ++0x2c 0xd8 0xf3 0x72 # CHECK: vpickve2gr.hu $r12, $vr1, 6 ++0x2a 0xe6 0xf3 0x72 # CHECK: vpickve2gr.wu $r10, $vr17, 1 ++0x1a 0xf5 0xf3 0x72 # CHECK: vpickve2gr.du $r26, $vr8, 1 ++0xc3 0xb0 0xf7 0x72 # CHECK: vreplvei.b $vr3, $vr6, 12 ++0xb6 0xdf 0xf7 0x72 # CHECK: vreplvei.h $vr22, $vr29, 7 ++0x51 0xe7 0xf7 0x72 # CHECK: vreplvei.w $vr17, $vr26, 1 ++0x20 0xf6 0xf7 0x72 # CHECK: vreplvei.d $vr0, $vr17, 1 ++0xd9 0x29 0x08 0x73 # CHECK: vsllwil.h.b $vr25, $vr14, 2 ++0xb8 0x44 0x08 0x73 # CHECK: vsllwil.w.h $vr24, $vr5, 1 ++0xd9 0xa1 0x08 0x73 # CHECK: vsllwil.d.w $vr25, $vr14, 8 ++0xc3 0x02 0x09 0x73 # CHECK: vextl.q.d $vr3, $vr22 ++0x2b 0x2f 0x0c 0x73 # CHECK: vsllwil.hu.bu $vr11, $vr25, 3 ++0x42 0x6b 0x0c 0x73 # CHECK: vsllwil.wu.hu $vr2, $vr26, 10 ++0x32 0xf1 0x0c 0x73 # CHECK: vsllwil.du.wu $vr18, $vr9, 28 ++0x2d 0x03 0x0d 0x73 # CHECK: vextl.qu.du $vr13, $vr25 ++0x1d 0x3b 0x10 0x73 # CHECK: vbitclri.b $vr29, $vr24, 6 ++0xfb 0x55 0x10 0x73 # CHECK: vbitclri.h $vr27, $vr15, 5 ++0x4b 0xa1 0x10 0x73 # CHECK: vbitclri.w $vr11, $vr10, 8 ++0xe4 0x3c 0x11 0x73 # CHECK: vbitclri.d $vr4, $vr7, 15 ++0x98 0x2e 0x14 0x73 # CHECK: vbitseti.b $vr24, $vr20, 3 ++0x06 0x61 0x14 0x73 # CHECK: vbitseti.h $vr6, $vr8, 8 ++0x35 0xe1 0x14 0x73 # CHECK: vbitseti.w $vr21, $vr9, 24 ++0x5c 0x7a 0x15 0x73 # CHECK: vbitseti.d $vr28, $vr18, 30 ++0xf3 0x23 0x18 0x73 # CHECK: vbitrevi.b $vr19, $vr31, 0 ++0x32 0x40 0x18 0x73 # CHECK: vbitrevi.h $vr18, $vr1, 0 ++0xd9 0xc8 0x18 0x73 # CHECK: vbitrevi.w $vr25, $vr6, 18 ++0x68 0x5b 0x19 0x73 # CHECK: vbitrevi.d $vr8, $vr27, 22 ++0x95 0x2b 0x24 0x73 # CHECK: vsat.b $vr21, $vr28, 2 ++0xa6 0x70 0x24 0x73 # CHECK: vsat.h $vr6, $vr5, 12 ++0xc3 0xc3 0x24 0x73 # CHECK: vsat.w $vr3, $vr30, 16 ++0xe0 0x63 0x25 0x73 # CHECK: vsat.d $vr0, $vr31, 24 ++0x94 0x2a 0x28 0x73 # CHECK: vsat.bu $vr20, $vr20, 2 ++0xc8 0x70 0x28 0x73 # CHECK: vsat.hu $vr8, $vr6, 12 ++0x92 0xea 0x28 0x73 # CHECK: vsat.wu $vr18, $vr20, 26 ++0xca 0x84 0x29 0x73 # CHECK: vsat.du $vr10, $vr6, 33 ++0x64 0x2e 0x2c 0x73 # CHECK: vslli.b $vr4, $vr19, 3 ++0xe3 0x7a 0x2c 0x73 # CHECK: vslli.h $vr3, $vr23, 14 ++0xb6 0x9a 0x2c 0x73 # CHECK: vslli.w $vr22, $vr21, 6 ++0xf7 0x91 0x2d 0x73 # CHECK: vslli.d $vr23, $vr15, 36 ++0x25 0x33 0x30 0x73 # CHECK: vsrli.b $vr5, $vr25, 4 ++0xc9 0x65 0x30 0x73 # CHECK: vsrli.h $vr9, $vr14, 9 ++0x07 0xb3 0x30 0x73 # CHECK: vsrli.w $vr7, $vr24, 12 ++0x4f 0xfe 0x31 0x73 # CHECK: vsrli.d $vr15, $vr18, 63 ++0x26 0x2c 0x34 0x73 # CHECK: vsrai.b $vr6, $vr1, 3 ++0xa7 0x4f 0x34 0x73 # CHECK: vsrai.h $vr7, $vr29, 3 ++0x7f 0xf7 0x34 0x73 # CHECK: vsrai.w $vr31, $vr27, 29 ++0xdc 0xe3 0x35 0x73 # CHECK: vsrai.d $vr28, $vr30, 56 ++0x42 0x4b 0x40 0x73 # CHECK: vsrlni.b.h $vr2, $vr26, 2 ++0xdf 0x8d 0x40 0x73 # CHECK: vsrlni.h.w $vr31, $vr14, 3 ++0x93 0x84 0x41 0x73 # CHECK: vsrlni.w.d $vr19, $vr4, 33 ++0x7f 0xfc 0x42 0x73 # CHECK: vsrlni.d.q $vr31, $vr3, 63 ++0x5a 0x42 0x44 0x73 # CHECK: vsrlrni.b.h $vr26, $vr18, 0 ++0xd2 0x96 0x44 0x73 # CHECK: vsrlrni.h.w $vr18, $vr22, 5 ++0x78 0x55 0x45 0x73 # CHECK: vsrlrni.w.d $vr24, $vr11, 21 ++0x66 0x95 0x46 0x73 # CHECK: vsrlrni.d.q $vr6, $vr11, 37 ++0xa3 0x56 0x48 0x73 # CHECK: vssrlni.b.h $vr3, $vr21, 5 ++0x26 0xc0 0x48 0x73 # CHECK: vssrlni.h.w $vr6, $vr1, 16 ++0xa4 0x6e 0x49 0x73 # CHECK: vssrlni.w.d $vr4, $vr21, 27 ++0x48 0x7a 0x4b 0x73 # CHECK: vssrlni.d.q $vr8, $vr18, 94 ++0x46 0x54 0x4c 0x73 # CHECK: vssrlni.bu.h $vr6, $vr2, 5 ++0xbd 0x8b 0x4c 0x73 # CHECK: vssrlni.hu.w $vr29, $vr29, 2 ++0x9c 0xbe 0x4d 0x73 # CHECK: vssrlni.wu.d $vr28, $vr20, 47 ++0x56 0x49 0x4f 0x73 # CHECK: vssrlni.du.q $vr22, $vr10, 82 ++0x31 0x6b 0x50 0x73 # CHECK: vssrlrni.b.h $vr17, $vr25, 10 ++0xb5 0x83 0x50 0x73 # CHECK: vssrlrni.h.w $vr21, $vr29, 0 ++0xe9 0xfd 0x51 0x73 # CHECK: vssrlrni.w.d $vr9, $vr15, 63 ++0x24 0xd4 0x53 0x73 # CHECK: vssrlrni.d.q $vr4, $vr1, 117 ++0xb9 0x4d 0x54 0x73 # CHECK: vssrlrni.bu.h $vr25, $vr13, 3 ++0x9e 0x9f 0x54 0x73 # CHECK: vssrlrni.hu.w $vr30, $vr28, 7 ++0x70 0x2f 0x55 0x73 # CHECK: vssrlrni.wu.d $vr16, $vr27, 11 ++0xb4 0xfd 0x56 0x73 # CHECK: vssrlrni.du.q $vr20, $vr13, 63 ++0x23 0x53 0x58 0x73 # CHECK: vsrani.b.h $vr3, $vr25, 4 ++0xac 0xc5 0x58 0x73 # CHECK: vsrani.h.w $vr12, $vr13, 17 ++0xc2 0x64 0x59 0x73 # CHECK: vsrani.w.d $vr2, $vr6, 25 ++0x0c 0xa5 0x5b 0x73 # CHECK: vsrani.d.q $vr12, $vr8, 105 ++0xbb 0x4a 0x5c 0x73 # CHECK: vsrarni.b.h $vr27, $vr21, 2 ++0x6d 0x80 0x5c 0x73 # CHECK: vsrarni.h.w $vr13, $vr3, 0 ++0xe9 0xab 0x5d 0x73 # CHECK: vsrarni.w.d $vr9, $vr31, 42 ++0xb9 0xec 0x5e 0x73 # CHECK: vsrarni.d.q $vr25, $vr5, 59 ++0xe8 0x70 0x60 0x73 # CHECK: vssrani.b.h $vr8, $vr7, 12 ++0x55 0xfa 0x60 0x73 # CHECK: vssrani.h.w $vr21, $vr18, 30 ++0xf7 0xcc 0x61 0x73 # CHECK: vssrani.w.d $vr23, $vr7, 51 ++0xcc 0x21 0x62 0x73 # CHECK: vssrani.d.q $vr12, $vr14, 8 ++0xb3 0x70 0x64 0x73 # CHECK: vssrani.bu.h $vr19, $vr5, 12 ++0x3b 0xbf 0x64 0x73 # CHECK: vssrani.hu.w $vr27, $vr25, 15 ++0x98 0xab 0x65 0x73 # CHECK: vssrani.wu.d $vr24, $vr28, 42 ++0xe4 0xfe 0x66 0x73 # CHECK: vssrani.du.q $vr4, $vr23, 63 ++0x1a 0x41 0x68 0x73 # CHECK: vssrarni.b.h $vr26, $vr8, 0 ++0x64 0xe4 0x68 0x73 # CHECK: vssrarni.h.w $vr4, $vr3, 25 ++0x20 0x4f 0x69 0x73 # CHECK: vssrarni.w.d $vr0, $vr25, 19 ++0x74 0xa9 0x6b 0x73 # CHECK: vssrarni.d.q $vr20, $vr11, 106 ++0x99 0x67 0x6c 0x73 # CHECK: vssrarni.bu.h $vr25, $vr28, 9 ++0xf4 0xb2 0x6c 0x73 # CHECK: vssrarni.hu.w $vr20, $vr23, 12 ++0xfc 0xea 0x6d 0x73 # CHECK: vssrarni.wu.d $vr28, $vr23, 58 ++0xc1 0x75 0x6f 0x73 # CHECK: vssrarni.du.q $vr1, $vr14, 93 ++0x6f 0x1f 0x80 0x73 # CHECK: vextrins.d $vr15, $vr27, 7 ++0x13 0x4c 0x86 0x73 # CHECK: vextrins.w $vr19, $vr0, 147 ++0x3d 0x15 0x89 0x73 # CHECK: vextrins.h $vr29, $vr9, 69 ++0xa0 0x5e 0x8c 0x73 # CHECK: vextrins.b $vr0, $vr21, 23 ++0x53 0xf1 0x92 0x73 # CHECK: vshuf4i.b $vr19, $vr10, 188 ++0x2f 0x2c 0x96 0x73 # CHECK: vshuf4i.h $vr15, $vr1, 139 ++0xa3 0x08 0x9a 0x73 # CHECK: vshuf4i.w $vr3, $vr5, 130 ++0xa8 0x0f 0x9e 0x73 # CHECK: vshuf4i.d $vr8, $vr29, 131 ++0x30 0xa3 0xc6 0x73 # CHECK: vbitseli.b $vr16, $vr25, 168 ++0xe4 0xe6 0xd1 0x73 # CHECK: vandi.b $vr4, $vr23, 121 ++0x47 0xf1 0xd6 0x73 # CHECK: vori.b $vr7, $vr10, 188 ++0x49 0x63 0xdb 0x73 # CHECK: vxori.b $vr9, $vr26, 216 ++0x84 0x6f 0xdf 0x73 # CHECK: vnori.b $vr4, $vr28, 219 ++0x56 0x2c 0xe2 0x73 # CHECK: vldi $vr22, -3742 ++0xae 0x43 0xe4 0x73 # CHECK: vpermi.w $vr14, $vr29, 16 ++0xeb 0x56 0x00 0x74 # CHECK: xvseq.b $xr11, $xr23, $xr21 ++0x46 0xed 0x00 0x74 # CHECK: xvseq.h $xr6, $xr10, $xr27 ++0x73 0x57 0x01 0x74 # CHECK: xvseq.w $xr19, $xr27, $xr21 ++0x92 0x88 0x01 0x74 # CHECK: xvseq.d $xr18, $xr4, $xr2 ++0x53 0x15 0x02 0x74 # CHECK: xvsle.b $xr19, $xr10, $xr5 ++0x2a 0xbb 0x02 0x74 # CHECK: xvsle.h $xr10, $xr25, $xr14 ++0xf1 0x4a 0x03 0x74 # CHECK: xvsle.w $xr17, $xr23, $xr18 ++0xef 0xa4 0x03 0x74 # CHECK: xvsle.d $xr15, $xr7, $xr9 ++0xc5 0x3d 0x04 0x74 # CHECK: xvsle.bu $xr5, $xr14, $xr15 ++0x29 0xe7 0x04 0x74 # CHECK: xvsle.hu $xr9, $xr25, $xr25 ++0xfc 0x43 0x05 0x74 # CHECK: xvsle.wu $xr28, $xr31, $xr16 ++0x11 0xe3 0x05 0x74 # CHECK: xvsle.du $xr17, $xr24, $xr24 ++0x92 0x67 0x06 0x74 # CHECK: xvslt.b $xr18, $xr28, $xr25 ++0xdd 0x88 0x06 0x74 # CHECK: xvslt.h $xr29, $xr6, $xr2 ++0x4e 0x15 0x07 0x74 # CHECK: xvslt.w $xr14, $xr10, $xr5 ++0xd3 0xbf 0x07 0x74 # CHECK: xvslt.d $xr19, $xr30, $xr15 ++0xce 0x6c 0x08 0x74 # CHECK: xvslt.bu $xr14, $xr6, $xr27 ++0x5b 0x97 0x08 0x74 # CHECK: xvslt.hu $xr27, $xr26, $xr5 ++0x26 0x29 0x09 0x74 # CHECK: xvslt.wu $xr6, $xr9, $xr10 ++0x8d 0xf1 0x09 0x74 # CHECK: xvslt.du $xr13, $xr12, $xr28 ++0xc0 0x0c 0x0a 0x74 # CHECK: xvadd.b $xr0, $xr6, $xr3 ++0x68 0xa9 0x0a 0x74 # CHECK: xvadd.h $xr8, $xr11, $xr10 ++0xc5 0x54 0x0b 0x74 # CHECK: xvadd.w $xr5, $xr6, $xr21 ++0xa4 0xaa 0x0b 0x74 # CHECK: xvadd.d $xr4, $xr21, $xr10 ++0x10 0x78 0x0c 0x74 # CHECK: xvsub.b $xr16, $xr0, $xr30 ++0x7c 0xc9 0x0c 0x74 # CHECK: xvsub.h $xr28, $xr11, $xr18 ++0x4d 0x34 0x0d 0x74 # CHECK: xvsub.w $xr13, $xr2, $xr13 ++0x20 0xd7 0x0d 0x74 # CHECK: xvsub.d $xr0, $xr25, $xr21 ++0xc8 0x2f 0x1e 0x74 # CHECK: xvaddwev.h.b $xr8, $xr30, $xr11 ++0xca 0x97 0x1e 0x74 # CHECK: xvaddwev.w.h $xr10, $xr30, $xr5 ++0x34 0x07 0x1f 0x74 # CHECK: xvaddwev.d.w $xr20, $xr25, $xr1 ++0x16 0xe3 0x1f 0x74 # CHECK: xvaddwev.q.d $xr22, $xr24, $xr24 ++0x21 0x07 0x20 0x74 # CHECK: xvsubwev.h.b $xr1, $xr25, $xr1 ++0xc4 0xaf 0x20 0x74 # CHECK: xvsubwev.w.h $xr4, $xr30, $xr11 ++0x46 0x48 0x21 0x74 # CHECK: xvsubwev.d.w $xr6, $xr2, $xr18 ++0x60 0xfd 0x21 0x74 # CHECK: xvsubwev.q.d $xr0, $xr11, $xr31 ++0x84 0x64 0x22 0x74 # CHECK: xvaddwod.h.b $xr4, $xr4, $xr25 ++0x2c 0xf7 0x22 0x74 # CHECK: xvaddwod.w.h $xr12, $xr25, $xr29 ++0xd0 0x4e 0x23 0x74 # CHECK: xvaddwod.d.w $xr16, $xr22, $xr19 ++0x37 0xbb 0x23 0x74 # CHECK: xvaddwod.q.d $xr23, $xr25, $xr14 ++0x01 0x22 0x24 0x74 # CHECK: xvsubwod.h.b $xr1, $xr16, $xr8 ++0x65 0xa1 0x24 0x74 # CHECK: xvsubwod.w.h $xr5, $xr11, $xr8 ++0xf4 0x00 0x25 0x74 # CHECK: xvsubwod.d.w $xr20, $xr7, $xr0 ++0xf1 0xd2 0x25 0x74 # CHECK: xvsubwod.q.d $xr17, $xr23, $xr20 ++0x4f 0x7d 0x2e 0x74 # CHECK: xvaddwev.h.bu $xr15, $xr10, $xr31 ++0x15 0xf3 0x2e 0x74 # CHECK: xvaddwev.w.hu $xr21, $xr24, $xr28 ++0xe9 0x3b 0x2f 0x74 # CHECK: xvaddwev.d.wu $xr9, $xr31, $xr14 ++0x39 0xa0 0x2f 0x74 # CHECK: xvaddwev.q.du $xr25, $xr1, $xr8 ++0xfe 0x37 0x30 0x74 # CHECK: xvsubwev.h.bu $xr30, $xr31, $xr13 ++0x81 0x87 0x30 0x74 # CHECK: xvsubwev.w.hu $xr1, $xr28, $xr1 ++0xfd 0x76 0x31 0x74 # CHECK: xvsubwev.d.wu $xr29, $xr23, $xr29 ++0x0d 0xee 0x31 0x74 # CHECK: xvsubwev.q.du $xr13, $xr16, $xr27 ++0xad 0x0b 0x32 0x74 # CHECK: xvaddwod.h.bu $xr13, $xr29, $xr2 ++0x4e 0xb5 0x32 0x74 # CHECK: xvaddwod.w.hu $xr14, $xr10, $xr13 ++0x5e 0x2b 0x33 0x74 # CHECK: xvaddwod.d.wu $xr30, $xr26, $xr10 ++0xa2 0x81 0x33 0x74 # CHECK: xvaddwod.q.du $xr2, $xr13, $xr0 ++0xc6 0x16 0x34 0x74 # CHECK: xvsubwod.h.bu $xr6, $xr22, $xr5 ++0xb3 0xa2 0x34 0x74 # CHECK: xvsubwod.w.hu $xr19, $xr21, $xr8 ++0x70 0x79 0x35 0x74 # CHECK: xvsubwod.d.wu $xr16, $xr11, $xr30 ++0x41 0xa7 0x35 0x74 # CHECK: xvsubwod.q.du $xr1, $xr26, $xr9 ++0xa5 0x09 0x3e 0x74 # CHECK: xvaddwev.h.bu.b $xr5, $xr13, $xr2 ++0xb1 0xd2 0x3e 0x74 # CHECK: xvaddwev.w.hu.h $xr17, $xr21, $xr20 ++0x6b 0x4f 0x3f 0x74 # CHECK: xvaddwev.d.wu.w $xr11, $xr27, $xr19 ++0xb4 0xf6 0x3f 0x74 # CHECK: xvaddwev.q.du.d $xr20, $xr21, $xr29 ++0xc1 0x38 0x40 0x74 # CHECK: xvaddwod.h.bu.b $xr1, $xr6, $xr14 ++0xa7 0xaf 0x40 0x74 # CHECK: xvaddwod.w.hu.h $xr7, $xr29, $xr11 ++0x50 0x39 0x41 0x74 # CHECK: xvaddwod.d.wu.w $xr16, $xr10, $xr14 ++0x6a 0xdd 0x41 0x74 # CHECK: xvaddwod.q.du.d $xr10, $xr11, $xr23 ++0x58 0x71 0x46 0x74 # CHECK: xvsadd.b $xr24, $xr10, $xr28 ++0x53 0xc6 0x46 0x74 # CHECK: xvsadd.h $xr19, $xr18, $xr17 ++0xc2 0x30 0x47 0x74 # CHECK: xvsadd.w $xr2, $xr6, $xr12 ++0x4f 0xf6 0x47 0x74 # CHECK: xvsadd.d $xr15, $xr18, $xr29 ++0xaf 0x43 0x48 0x74 # CHECK: xvssub.b $xr15, $xr29, $xr16 ++0x7c 0xa4 0x48 0x74 # CHECK: xvssub.h $xr28, $xr3, $xr9 ++0x88 0x3e 0x49 0x74 # CHECK: xvssub.w $xr8, $xr20, $xr15 ++0x17 0xcd 0x49 0x74 # CHECK: xvssub.d $xr23, $xr8, $xr19 ++0x8c 0x40 0x4a 0x74 # CHECK: xvsadd.bu $xr12, $xr4, $xr16 ++0x49 0xd3 0x4a 0x74 # CHECK: xvsadd.hu $xr9, $xr26, $xr20 ++0xfe 0x71 0x4b 0x74 # CHECK: xvsadd.wu $xr30, $xr15, $xr28 ++0xaf 0xf1 0x4b 0x74 # CHECK: xvsadd.du $xr15, $xr13, $xr28 ++0x6a 0x3c 0x4c 0x74 # CHECK: xvssub.bu $xr10, $xr3, $xr15 ++0x80 0x89 0x4c 0x74 # CHECK: xvssub.hu $xr0, $xr12, $xr2 ++0x5e 0x5d 0x4d 0x74 # CHECK: xvssub.wu $xr30, $xr10, $xr23 ++0xc9 0xbb 0x4d 0x74 # CHECK: xvssub.du $xr9, $xr30, $xr14 ++0xb9 0x48 0x54 0x74 # CHECK: xvhaddw.h.b $xr25, $xr5, $xr18 ++0x87 0xce 0x54 0x74 # CHECK: xvhaddw.w.h $xr7, $xr20, $xr19 ++0xb7 0x10 0x55 0x74 # CHECK: xvhaddw.d.w $xr23, $xr5, $xr4 ++0xf1 0xe4 0x55 0x74 # CHECK: xvhaddw.q.d $xr17, $xr7, $xr25 ++0x5d 0x4e 0x56 0x74 # CHECK: xvhsubw.h.b $xr29, $xr18, $xr19 ++0x9e 0x8f 0x56 0x74 # CHECK: xvhsubw.w.h $xr30, $xr28, $xr3 ++0x25 0x35 0x57 0x74 # CHECK: xvhsubw.d.w $xr5, $xr9, $xr13 ++0x94 0xf5 0x57 0x74 # CHECK: xvhsubw.q.d $xr20, $xr12, $xr29 ++0x4b 0x1d 0x58 0x74 # CHECK: xvhaddw.hu.bu $xr11, $xr10, $xr7 ++0xb0 0xd6 0x58 0x74 # CHECK: xvhaddw.wu.hu $xr16, $xr21, $xr21 ++0xf1 0x23 0x59 0x74 # CHECK: xvhaddw.du.wu $xr17, $xr31, $xr8 ++0x82 0xac 0x59 0x74 # CHECK: xvhaddw.qu.du $xr2, $xr4, $xr11 ++0xd5 0x21 0x5a 0x74 # CHECK: xvhsubw.hu.bu $xr21, $xr14, $xr8 ++0x19 0xec 0x5a 0x74 # CHECK: xvhsubw.wu.hu $xr25, $xr0, $xr27 ++0x04 0x7a 0x5b 0x74 # CHECK: xvhsubw.du.wu $xr4, $xr16, $xr30 ++0x2b 0x99 0x5b 0x74 # CHECK: xvhsubw.qu.du $xr11, $xr9, $xr6 ++0xae 0x6a 0x5c 0x74 # CHECK: xvadda.b $xr14, $xr21, $xr26 ++0xd5 0xd7 0x5c 0x74 # CHECK: xvadda.h $xr21, $xr30, $xr21 ++0x7f 0x4e 0x5d 0x74 # CHECK: xvadda.w $xr31, $xr19, $xr19 ++0x89 0xfc 0x5d 0x74 # CHECK: xvadda.d $xr9, $xr4, $xr31 ++0x74 0x36 0x60 0x74 # CHECK: xvabsd.b $xr20, $xr19, $xr13 ++0xf4 0xa8 0x60 0x74 # CHECK: xvabsd.h $xr20, $xr7, $xr10 ++0xf7 0x03 0x61 0x74 # CHECK: xvabsd.w $xr23, $xr31, $xr0 ++0x27 0xba 0x61 0x74 # CHECK: xvabsd.d $xr7, $xr17, $xr14 ++0xec 0x1a 0x62 0x74 # CHECK: xvabsd.bu $xr12, $xr23, $xr6 ++0xd0 0xcf 0x62 0x74 # CHECK: xvabsd.hu $xr16, $xr30, $xr19 ++0xb3 0x68 0x63 0x74 # CHECK: xvabsd.wu $xr19, $xr5, $xr26 ++0x80 0x9d 0x63 0x74 # CHECK: xvabsd.du $xr0, $xr12, $xr7 ++0xf7 0x67 0x64 0x74 # CHECK: xvavg.b $xr23, $xr31, $xr25 ++0x5b 0xec 0x64 0x74 # CHECK: xvavg.h $xr27, $xr2, $xr27 ++0x14 0x40 0x65 0x74 # CHECK: xvavg.w $xr20, $xr0, $xr16 ++0x2d 0xa9 0x65 0x74 # CHECK: xvavg.d $xr13, $xr9, $xr10 ++0xdf 0x13 0x66 0x74 # CHECK: xvavg.bu $xr31, $xr30, $xr4 ++0x36 0x96 0x66 0x74 # CHECK: xvavg.hu $xr22, $xr17, $xr5 ++0xb5 0x47 0x67 0x74 # CHECK: xvavg.wu $xr21, $xr29, $xr17 ++0xab 0xf4 0x67 0x74 # CHECK: xvavg.du $xr11, $xr5, $xr29 ++0xb7 0x35 0x68 0x74 # CHECK: xvavgr.b $xr23, $xr13, $xr13 ++0x9e 0xfe 0x68 0x74 # CHECK: xvavgr.h $xr30, $xr20, $xr31 ++0x9d 0x27 0x69 0x74 # CHECK: xvavgr.w $xr29, $xr28, $xr9 ++0x95 0xa2 0x69 0x74 # CHECK: xvavgr.d $xr21, $xr20, $xr8 ++0x20 0x11 0x6a 0x74 # CHECK: xvavgr.bu $xr0, $xr9, $xr4 ++0x03 0xec 0x6a 0x74 # CHECK: xvavgr.hu $xr3, $xr0, $xr27 ++0xc2 0x57 0x6b 0x74 # CHECK: xvavgr.wu $xr2, $xr30, $xr21 ++0xb6 0xc6 0x6b 0x74 # CHECK: xvavgr.du $xr22, $xr21, $xr17 ++0x81 0x4e 0x70 0x74 # CHECK: xvmax.b $xr1, $xr20, $xr19 ++0x20 0xba 0x70 0x74 # CHECK: xvmax.h $xr0, $xr17, $xr14 ++0x00 0x41 0x71 0x74 # CHECK: xvmax.w $xr0, $xr8, $xr16 ++0xf0 0xc2 0x71 0x74 # CHECK: xvmax.d $xr16, $xr23, $xr16 ++0xd4 0x38 0x72 0x74 # CHECK: xvmin.b $xr20, $xr6, $xr14 ++0x64 0xe0 0x72 0x74 # CHECK: xvmin.h $xr4, $xr3, $xr24 ++0x45 0x5c 0x73 0x74 # CHECK: xvmin.w $xr5, $xr2, $xr23 ++0xff 0xea 0x73 0x74 # CHECK: xvmin.d $xr31, $xr23, $xr26 ++0xae 0x0d 0x74 0x74 # CHECK: xvmax.bu $xr14, $xr13, $xr3 ++0x36 0x92 0x74 0x74 # CHECK: xvmax.hu $xr22, $xr17, $xr4 ++0xb1 0x75 0x75 0x74 # CHECK: xvmax.wu $xr17, $xr13, $xr29 ++0x4d 0x80 0x75 0x74 # CHECK: xvmax.du $xr13, $xr2, $xr0 ++0xf2 0x6f 0x76 0x74 # CHECK: xvmin.bu $xr18, $xr31, $xr27 ++0x42 0xb9 0x76 0x74 # CHECK: xvmin.hu $xr2, $xr10, $xr14 ++0x1f 0x69 0x77 0x74 # CHECK: xvmin.wu $xr31, $xr8, $xr26 ++0x4c 0xa7 0x77 0x74 # CHECK: xvmin.du $xr12, $xr26, $xr9 ++0x5a 0x0c 0x84 0x74 # CHECK: xvmul.b $xr26, $xr2, $xr3 ++0xb0 0x97 0x84 0x74 # CHECK: xvmul.h $xr16, $xr29, $xr5 ++0x33 0x0c 0x85 0x74 # CHECK: xvmul.w $xr19, $xr1, $xr3 ++0xef 0x81 0x85 0x74 # CHECK: xvmul.d $xr15, $xr15, $xr0 ++0x89 0x25 0x86 0x74 # CHECK: xvmuh.b $xr9, $xr12, $xr9 ++0xe8 0xc2 0x86 0x74 # CHECK: xvmuh.h $xr8, $xr23, $xr16 ++0xdd 0x2c 0x87 0x74 # CHECK: xvmuh.w $xr29, $xr6, $xr11 ++0x43 0x9e 0x87 0x74 # CHECK: xvmuh.d $xr3, $xr18, $xr7 ++0xe3 0x4c 0x88 0x74 # CHECK: xvmuh.bu $xr3, $xr7, $xr19 ++0x2d 0xc8 0x88 0x74 # CHECK: xvmuh.hu $xr13, $xr1, $xr18 ++0xaf 0x42 0x89 0x74 # CHECK: xvmuh.wu $xr15, $xr21, $xr16 ++0x4b 0xcd 0x89 0x74 # CHECK: xvmuh.du $xr11, $xr10, $xr19 ++0x84 0x25 0x90 0x74 # CHECK: xvmulwev.h.b $xr4, $xr12, $xr9 ++0x6a 0xd0 0x90 0x74 # CHECK: xvmulwev.w.h $xr10, $xr3, $xr20 ++0xc4 0x4a 0x91 0x74 # CHECK: xvmulwev.d.w $xr4, $xr22, $xr18 ++0xb4 0xee 0x91 0x74 # CHECK: xvmulwev.q.d $xr20, $xr21, $xr27 ++0xe5 0x00 0x92 0x74 # CHECK: xvmulwod.h.b $xr5, $xr7, $xr0 ++0x93 0xaf 0x92 0x74 # CHECK: xvmulwod.w.h $xr19, $xr28, $xr11 ++0xf3 0x40 0x93 0x74 # CHECK: xvmulwod.d.w $xr19, $xr7, $xr16 ++0x8b 0xb5 0x93 0x74 # CHECK: xvmulwod.q.d $xr11, $xr12, $xr13 ++0x56 0x04 0x98 0x74 # CHECK: xvmulwev.h.bu $xr22, $xr2, $xr1 ++0x62 0x90 0x98 0x74 # CHECK: xvmulwev.w.hu $xr2, $xr3, $xr4 ++0x82 0x65 0x99 0x74 # CHECK: xvmulwev.d.wu $xr2, $xr12, $xr25 ++0xb6 0xc7 0x99 0x74 # CHECK: xvmulwev.q.du $xr22, $xr29, $xr17 ++0x29 0x01 0x9a 0x74 # CHECK: xvmulwod.h.bu $xr9, $xr9, $xr0 ++0x54 0xc0 0x9a 0x74 # CHECK: xvmulwod.w.hu $xr20, $xr2, $xr16 ++0x61 0x61 0x9b 0x74 # CHECK: xvmulwod.d.wu $xr1, $xr11, $xr24 ++0x53 0xd8 0x9b 0x74 # CHECK: xvmulwod.q.du $xr19, $xr2, $xr22 ++0xb6 0x63 0xa0 0x74 # CHECK: xvmulwev.h.bu.b $xr22, $xr29, $xr24 ++0xc1 0xae 0xa0 0x74 # CHECK: xvmulwev.w.hu.h $xr1, $xr22, $xr11 ++0x8c 0x31 0xa1 0x74 # CHECK: xvmulwev.d.wu.w $xr12, $xr12, $xr12 ++0x20 0xde 0xa1 0x74 # CHECK: xvmulwev.q.du.d $xr0, $xr17, $xr23 ++0x1a 0x5e 0xa2 0x74 # CHECK: xvmulwod.h.bu.b $xr26, $xr16, $xr23 ++0x9f 0xa5 0xa2 0x74 # CHECK: xvmulwod.w.hu.h $xr31, $xr12, $xr9 ++0x75 0x4f 0xa3 0x74 # CHECK: xvmulwod.d.wu.w $xr21, $xr27, $xr19 ++0xa7 0xac 0xa3 0x74 # CHECK: xvmulwod.q.du.d $xr7, $xr5, $xr11 ++0x76 0x3d 0xa8 0x74 # CHECK: xvmadd.b $xr22, $xr11, $xr15 ++0xc3 0xe7 0xa8 0x74 # CHECK: xvmadd.h $xr3, $xr30, $xr25 ++0x41 0x16 0xa9 0x74 # CHECK: xvmadd.w $xr1, $xr18, $xr5 ++0xb0 0xae 0xa9 0x74 # CHECK: xvmadd.d $xr16, $xr21, $xr11 ++0x8b 0x29 0xaa 0x74 # CHECK: xvmsub.b $xr11, $xr12, $xr10 ++0x70 0x85 0xaa 0x74 # CHECK: xvmsub.h $xr16, $xr11, $xr1 ++0xaf 0x56 0xab 0x74 # CHECK: xvmsub.w $xr15, $xr21, $xr21 ++0x6c 0x91 0xab 0x74 # CHECK: xvmsub.d $xr12, $xr11, $xr4 ++0xf5 0x18 0xac 0x74 # CHECK: xvmaddwev.h.b $xr21, $xr7, $xr6 ++0xb0 0xb7 0xac 0x74 # CHECK: xvmaddwev.w.h $xr16, $xr29, $xr13 ++0x27 0x7b 0xad 0x74 # CHECK: xvmaddwev.d.w $xr7, $xr25, $xr30 ++0x73 0xa0 0xad 0x74 # CHECK: xvmaddwev.q.d $xr19, $xr3, $xr8 ++0x74 0x33 0xae 0x74 # CHECK: xvmaddwod.h.b $xr20, $xr27, $xr12 ++0xa0 0xb6 0xae 0x74 # CHECK: xvmaddwod.w.h $xr0, $xr21, $xr13 ++0xb9 0x7d 0xaf 0x74 # CHECK: xvmaddwod.d.w $xr25, $xr13, $xr31 ++0x5a 0xc3 0xaf 0x74 # CHECK: xvmaddwod.q.d $xr26, $xr26, $xr16 ++0x52 0x57 0xb4 0x74 # CHECK: xvmaddwev.h.bu $xr18, $xr26, $xr21 ++0x0e 0x96 0xb4 0x74 # CHECK: xvmaddwev.w.hu $xr14, $xr16, $xr5 ++0xb3 0x53 0xb5 0x74 # CHECK: xvmaddwev.d.wu $xr19, $xr29, $xr20 ++0xaf 0xc7 0xb5 0x74 # CHECK: xvmaddwev.q.du $xr15, $xr29, $xr17 ++0x4d 0x07 0xb6 0x74 # CHECK: xvmaddwod.h.bu $xr13, $xr26, $xr1 ++0x2f 0xc3 0xb6 0x74 # CHECK: xvmaddwod.w.hu $xr15, $xr25, $xr16 ++0x97 0x24 0xb7 0x74 # CHECK: xvmaddwod.d.wu $xr23, $xr4, $xr9 ++0xdd 0xc6 0xb7 0x74 # CHECK: xvmaddwod.q.du $xr29, $xr22, $xr17 ++0x37 0x18 0xbc 0x74 # CHECK: xvmaddwev.h.bu.b $xr23, $xr1, $xr6 ++0x64 0xb3 0xbc 0x74 # CHECK: xvmaddwev.w.hu.h $xr4, $xr27, $xr12 ++0x40 0x14 0xbd 0x74 # CHECK: xvmaddwev.d.wu.w $xr0, $xr2, $xr5 ++0xe9 0x87 0xbd 0x74 # CHECK: xvmaddwev.q.du.d $xr9, $xr31, $xr1 ++0x69 0x52 0xbe 0x74 # CHECK: xvmaddwod.h.bu.b $xr9, $xr19, $xr20 ++0xa7 0xb4 0xbe 0x74 # CHECK: xvmaddwod.w.hu.h $xr7, $xr5, $xr13 ++0x6a 0x07 0xbf 0x74 # CHECK: xvmaddwod.d.wu.w $xr10, $xr27, $xr1 ++0x79 0x82 0xbf 0x74 # CHECK: xvmaddwod.q.du.d $xr25, $xr19, $xr0 ++0xe3 0x0b 0xe0 0x74 # CHECK: xvdiv.b $xr3, $xr31, $xr2 ++0x81 0xc5 0xe0 0x74 # CHECK: xvdiv.h $xr1, $xr12, $xr17 ++0x0d 0x30 0xe1 0x74 # CHECK: xvdiv.w $xr13, $xr0, $xr12 ++0xb1 0xac 0xe1 0x74 # CHECK: xvdiv.d $xr17, $xr5, $xr11 ++0x36 0x06 0xe2 0x74 # CHECK: xvmod.b $xr22, $xr17, $xr1 ++0xbc 0xb0 0xe2 0x74 # CHECK: xvmod.h $xr28, $xr5, $xr12 ++0x7d 0x3a 0xe3 0x74 # CHECK: xvmod.w $xr29, $xr19, $xr14 ++0x11 0x99 0xe3 0x74 # CHECK: xvmod.d $xr17, $xr8, $xr6 ++0xd7 0x08 0xe4 0x74 # CHECK: xvdiv.bu $xr23, $xr6, $xr2 ++0xe9 0x83 0xe4 0x74 # CHECK: xvdiv.hu $xr9, $xr31, $xr0 ++0x2f 0x10 0xe5 0x74 # CHECK: xvdiv.wu $xr15, $xr1, $xr4 ++0xae 0xaf 0xe5 0x74 # CHECK: xvdiv.du $xr14, $xr29, $xr11 ++0x84 0x7d 0xe6 0x74 # CHECK: xvmod.bu $xr4, $xr12, $xr31 ++0x96 0xad 0xe6 0x74 # CHECK: xvmod.hu $xr22, $xr12, $xr11 ++0xf5 0x2a 0xe7 0x74 # CHECK: xvmod.wu $xr21, $xr23, $xr10 ++0xb5 0xfe 0xe7 0x74 # CHECK: xvmod.du $xr21, $xr21, $xr31 ++0x50 0x2d 0xe8 0x74 # CHECK: xvsll.b $xr16, $xr10, $xr11 ++0x4c 0xed 0xe8 0x74 # CHECK: xvsll.h $xr12, $xr10, $xr27 ++0x5e 0x68 0xe9 0x74 # CHECK: xvsll.w $xr30, $xr2, $xr26 ++0xa8 0xc6 0xe9 0x74 # CHECK: xvsll.d $xr8, $xr21, $xr17 ++0x1b 0x4b 0xea 0x74 # CHECK: xvsrl.b $xr27, $xr24, $xr18 ++0xf1 0xe3 0xea 0x74 # CHECK: xvsrl.h $xr17, $xr31, $xr24 ++0x65 0x10 0xeb 0x74 # CHECK: xvsrl.w $xr5, $xr3, $xr4 ++0xd5 0xa0 0xeb 0x74 # CHECK: xvsrl.d $xr21, $xr6, $xr8 ++0x9c 0x57 0xec 0x74 # CHECK: xvsra.b $xr28, $xr28, $xr21 ++0x93 0xe8 0xec 0x74 # CHECK: xvsra.h $xr19, $xr4, $xr26 ++0x8d 0x06 0xed 0x74 # CHECK: xvsra.w $xr13, $xr20, $xr1 ++0x00 0xc9 0xed 0x74 # CHECK: xvsra.d $xr0, $xr8, $xr18 ++0xc8 0x73 0xee 0x74 # CHECK: xvrotr.b $xr8, $xr30, $xr28 ++0x71 0x82 0xee 0x74 # CHECK: xvrotr.h $xr17, $xr19, $xr0 ++0x8f 0x5f 0xef 0x74 # CHECK: xvrotr.w $xr15, $xr28, $xr23 ++0x5f 0xd4 0xef 0x74 # CHECK: xvrotr.d $xr31, $xr2, $xr21 ++0x54 0x2f 0xf0 0x74 # CHECK: xvsrlr.b $xr20, $xr26, $xr11 ++0x4d 0x9e 0xf0 0x74 # CHECK: xvsrlr.h $xr13, $xr18, $xr7 ++0x3c 0x0c 0xf1 0x74 # CHECK: xvsrlr.w $xr28, $xr1, $xr3 ++0x66 0xb8 0xf1 0x74 # CHECK: xvsrlr.d $xr6, $xr3, $xr14 ++0x0a 0x45 0xf2 0x74 # CHECK: xvsrar.b $xr10, $xr8, $xr17 ++0x5f 0xac 0xf2 0x74 # CHECK: xvsrar.h $xr31, $xr2, $xr11 ++0x0d 0x15 0xf3 0x74 # CHECK: xvsrar.w $xr13, $xr8, $xr5 ++0x4c 0x82 0xf3 0x74 # CHECK: xvsrar.d $xr12, $xr18, $xr0 ++0xcf 0xbc 0xf4 0x74 # CHECK: xvsrln.b.h $xr15, $xr6, $xr15 ++0x76 0x46 0xf5 0x74 # CHECK: xvsrln.h.w $xr22, $xr19, $xr17 ++0xe4 0x94 0xf5 0x74 # CHECK: xvsrln.w.d $xr4, $xr7, $xr5 ++0x63 0xde 0xf6 0x74 # CHECK: xvsran.b.h $xr3, $xr19, $xr23 ++0xd0 0x04 0xf7 0x74 # CHECK: xvsran.h.w $xr16, $xr6, $xr1 ++0x1b 0x82 0xf7 0x74 # CHECK: xvsran.w.d $xr27, $xr16, $xr0 ++0x22 0xa5 0xf8 0x74 # CHECK: xvsrlrn.b.h $xr2, $xr9, $xr9 ++0x70 0x4d 0xf9 0x74 # CHECK: xvsrlrn.h.w $xr16, $xr11, $xr19 ++0x3d 0xbf 0xf9 0x74 # CHECK: xvsrlrn.w.d $xr29, $xr25, $xr15 ++0x8d 0xb6 0xfa 0x74 # CHECK: xvsrarn.b.h $xr13, $xr20, $xr13 ++0xcd 0x06 0xfb 0x74 # CHECK: xvsrarn.h.w $xr13, $xr22, $xr1 ++0x8d 0x89 0xfb 0x74 # CHECK: xvsrarn.w.d $xr13, $xr12, $xr2 ++0x73 0xaa 0xfc 0x74 # CHECK: xvssrln.b.h $xr19, $xr19, $xr10 ++0x0c 0x47 0xfd 0x74 # CHECK: xvssrln.h.w $xr12, $xr24, $xr17 ++0xc7 0xbb 0xfd 0x74 # CHECK: xvssrln.w.d $xr7, $xr30, $xr14 ++0x26 0xdd 0xfe 0x74 # CHECK: xvssran.b.h $xr6, $xr9, $xr23 ++0x2d 0x09 0xff 0x74 # CHECK: xvssran.h.w $xr13, $xr9, $xr2 ++0x52 0x87 0xff 0x74 # CHECK: xvssran.w.d $xr18, $xr26, $xr1 ++0x38 0xde 0x00 0x75 # CHECK: xvssrlrn.b.h $xr24, $xr17, $xr23 ++0x8a 0x21 0x01 0x75 # CHECK: xvssrlrn.h.w $xr10, $xr12, $xr8 ++0x7e 0x9b 0x01 0x75 # CHECK: xvssrlrn.w.d $xr30, $xr27, $xr6 ++0x74 0xff 0x02 0x75 # CHECK: xvssrarn.b.h $xr20, $xr27, $xr31 ++0xf8 0x5e 0x03 0x75 # CHECK: xvssrarn.h.w $xr24, $xr23, $xr23 ++0xa8 0xe7 0x03 0x75 # CHECK: xvssrarn.w.d $xr8, $xr29, $xr25 ++0x8e 0xc4 0x04 0x75 # CHECK: xvssrln.bu.h $xr14, $xr4, $xr17 ++0x9c 0x2a 0x05 0x75 # CHECK: xvssrln.hu.w $xr28, $xr20, $xr10 ++0x0a 0xd1 0x05 0x75 # CHECK: xvssrln.wu.d $xr10, $xr8, $xr20 ++0x92 0xdf 0x06 0x75 # CHECK: xvssran.bu.h $xr18, $xr28, $xr23 ++0x79 0x62 0x07 0x75 # CHECK: xvssran.hu.w $xr25, $xr19, $xr24 ++0xb0 0xcb 0x07 0x75 # CHECK: xvssran.wu.d $xr16, $xr29, $xr18 ++0x62 0xba 0x08 0x75 # CHECK: xvssrlrn.bu.h $xr2, $xr19, $xr14 ++0x06 0x48 0x09 0x75 # CHECK: xvssrlrn.hu.w $xr6, $xr0, $xr18 ++0x9e 0xfc 0x09 0x75 # CHECK: xvssrlrn.wu.d $xr30, $xr4, $xr31 ++0x90 0xa3 0x0a 0x75 # CHECK: xvssrarn.bu.h $xr16, $xr28, $xr8 ++0x4b 0x18 0x0b 0x75 # CHECK: xvssrarn.hu.w $xr11, $xr2, $xr6 ++0xd6 0xb0 0x0b 0x75 # CHECK: xvssrarn.wu.d $xr22, $xr6, $xr12 ++0x04 0x42 0x0c 0x75 # CHECK: xvbitclr.b $xr4, $xr16, $xr16 ++0xf0 0xeb 0x0c 0x75 # CHECK: xvbitclr.h $xr16, $xr31, $xr26 ++0x58 0x50 0x0d 0x75 # CHECK: xvbitclr.w $xr24, $xr2, $xr20 ++0x92 0xf9 0x0d 0x75 # CHECK: xvbitclr.d $xr18, $xr12, $xr30 ++0x7a 0x5f 0x0e 0x75 # CHECK: xvbitset.b $xr26, $xr27, $xr23 ++0x73 0xae 0x0e 0x75 # CHECK: xvbitset.h $xr19, $xr19, $xr11 ++0x27 0x49 0x0f 0x75 # CHECK: xvbitset.w $xr7, $xr9, $xr18 ++0xc6 0x8f 0x0f 0x75 # CHECK: xvbitset.d $xr6, $xr30, $xr3 ++0xbe 0x1d 0x10 0x75 # CHECK: xvbitrev.b $xr30, $xr13, $xr7 ++0x6c 0xa0 0x10 0x75 # CHECK: xvbitrev.h $xr12, $xr3, $xr8 ++0x88 0x52 0x11 0x75 # CHECK: xvbitrev.w $xr8, $xr20, $xr20 ++0xfc 0xc4 0x11 0x75 # CHECK: xvbitrev.d $xr28, $xr7, $xr17 ++0x5d 0x32 0x16 0x75 # CHECK: xvpackev.b $xr29, $xr18, $xr12 ++0x66 0xc5 0x16 0x75 # CHECK: xvpackev.h $xr6, $xr11, $xr17 ++0x42 0x78 0x17 0x75 # CHECK: xvpackev.w $xr2, $xr2, $xr30 ++0xfa 0xd5 0x17 0x75 # CHECK: xvpackev.d $xr26, $xr15, $xr21 ++0x33 0x46 0x18 0x75 # CHECK: xvpackod.b $xr19, $xr17, $xr17 ++0x0f 0x8d 0x18 0x75 # CHECK: xvpackod.h $xr15, $xr8, $xr3 ++0xed 0x31 0x19 0x75 # CHECK: xvpackod.w $xr13, $xr15, $xr12 ++0x65 0xe8 0x19 0x75 # CHECK: xvpackod.d $xr5, $xr3, $xr26 ++0x3b 0x05 0x1a 0x75 # CHECK: xvilvl.b $xr27, $xr9, $xr1 ++0x1d 0x85 0x1a 0x75 # CHECK: xvilvl.h $xr29, $xr8, $xr1 ++0x09 0x1d 0x1b 0x75 # CHECK: xvilvl.w $xr9, $xr8, $xr7 ++0xf9 0xc8 0x1b 0x75 # CHECK: xvilvl.d $xr25, $xr7, $xr18 ++0x07 0x6b 0x1c 0x75 # CHECK: xvilvh.b $xr7, $xr24, $xr26 ++0x86 0xf2 0x1c 0x75 # CHECK: xvilvh.h $xr6, $xr20, $xr28 ++0xad 0x30 0x1d 0x75 # CHECK: xvilvh.w $xr13, $xr5, $xr12 ++0xa1 0xfe 0x1d 0x75 # CHECK: xvilvh.d $xr1, $xr21, $xr31 ++0xb1 0x7d 0x1e 0x75 # CHECK: xvpickev.b $xr17, $xr13, $xr31 ++0x04 0xb9 0x1e 0x75 # CHECK: xvpickev.h $xr4, $xr8, $xr14 ++0x0a 0x2d 0x1f 0x75 # CHECK: xvpickev.w $xr10, $xr8, $xr11 ++0x9a 0xa2 0x1f 0x75 # CHECK: xvpickev.d $xr26, $xr20, $xr8 ++0xb3 0x6e 0x20 0x75 # CHECK: xvpickod.b $xr19, $xr21, $xr27 ++0xbc 0xcc 0x20 0x75 # CHECK: xvpickod.h $xr28, $xr5, $xr19 ++0x55 0x5a 0x21 0x75 # CHECK: xvpickod.w $xr21, $xr18, $xr22 ++0xfc 0xc8 0x21 0x75 # CHECK: xvpickod.d $xr28, $xr7, $xr18 ++0x86 0x66 0x22 0x75 # CHECK: xvreplve.b $xr6, $xr20, $r25 ++0xfb 0xb8 0x22 0x75 # CHECK: xvreplve.h $xr27, $xr7, $r14 ++0x81 0x3c 0x23 0x75 # CHECK: xvreplve.w $xr1, $xr4, $r15 ++0x8c 0xc1 0x23 0x75 # CHECK: xvreplve.d $xr12, $xr12, $r16 ++0x61 0x74 0x26 0x75 # CHECK: xvand.v $xr1, $xr3, $xr29 ++0x77 0xd1 0x26 0x75 # CHECK: xvor.v $xr23, $xr11, $xr20 ++0x3f 0x78 0x27 0x75 # CHECK: xvxor.v $xr31, $xr1, $xr30 ++0x5d 0xb7 0x27 0x75 # CHECK: xvnor.v $xr29, $xr26, $xr13 ++0xc9 0x01 0x28 0x75 # CHECK: xvandn.v $xr9, $xr14, $xr0 ++0x19 0xb1 0x28 0x75 # CHECK: xvorn.v $xr25, $xr8, $xr12 ++0x55 0x6b 0x2b 0x75 # CHECK: xvfrstp.b $xr21, $xr26, $xr26 ++0x24 0x8a 0x2b 0x75 # CHECK: xvfrstp.h $xr4, $xr17, $xr2 ++0x9d 0x47 0x2d 0x75 # CHECK: xvadd.q $xr29, $xr28, $xr17 ++0x5d 0xec 0x2d 0x75 # CHECK: xvsub.q $xr29, $xr2, $xr27 ++0x92 0x1f 0x2e 0x75 # CHECK: xvsigncov.b $xr18, $xr28, $xr7 ++0x92 0xc5 0x2e 0x75 # CHECK: xvsigncov.h $xr18, $xr12, $xr17 ++0x3a 0x00 0x2f 0x75 # CHECK: xvsigncov.w $xr26, $xr1, $xr0 ++0x6a 0xbb 0x2f 0x75 # CHECK: xvsigncov.d $xr10, $xr27, $xr14 ++0x2f 0xa3 0x30 0x75 # CHECK: xvfadd.s $xr15, $xr25, $xr8 ++0xd3 0x54 0x31 0x75 # CHECK: xvfadd.d $xr19, $xr6, $xr21 ++0xda 0x98 0x32 0x75 # CHECK: xvfsub.s $xr26, $xr6, $xr6 ++0x09 0x54 0x33 0x75 # CHECK: xvfsub.d $xr9, $xr0, $xr21 ++0x06 0xb9 0x38 0x75 # CHECK: xvfmul.s $xr6, $xr8, $xr14 ++0xab 0x6a 0x39 0x75 # CHECK: xvfmul.d $xr11, $xr21, $xr26 ++0xeb 0x98 0x3a 0x75 # CHECK: xvfdiv.s $xr11, $xr7, $xr6 ++0x40 0x13 0x3b 0x75 # CHECK: xvfdiv.d $xr0, $xr26, $xr4 ++0x27 0x91 0x3c 0x75 # CHECK: xvfmax.s $xr7, $xr9, $xr4 ++0x40 0x53 0x3d 0x75 # CHECK: xvfmax.d $xr0, $xr26, $xr20 ++0x48 0xe9 0x3e 0x75 # CHECK: xvfmin.s $xr8, $xr10, $xr26 ++0xc2 0x66 0x3f 0x75 # CHECK: xvfmin.d $xr2, $xr22, $xr25 ++0x91 0x84 0x40 0x75 # CHECK: xvfmaxa.s $xr17, $xr4, $xr1 ++0xfb 0x26 0x41 0x75 # CHECK: xvfmaxa.d $xr27, $xr23, $xr9 ++0x75 0xec 0x42 0x75 # CHECK: xvfmina.s $xr21, $xr3, $xr27 ++0xc7 0x10 0x43 0x75 # CHECK: xvfmina.d $xr7, $xr6, $xr4 ++0x49 0x51 0x46 0x75 # CHECK: xvfcvt.h.s $xr9, $xr10, $xr20 ++0xe5 0xd6 0x46 0x75 # CHECK: xvfcvt.s.d $xr5, $xr23, $xr21 ++0x1c 0x2b 0x48 0x75 # CHECK: xvffint.s.l $xr28, $xr24, $xr10 ++0x06 0x87 0x49 0x75 # CHECK: xvftint.w.d $xr6, $xr24, $xr1 ++0x5b 0x7b 0x4a 0x75 # CHECK: xvftintrm.w.d $xr27, $xr26, $xr30 ++0x9f 0x85 0x4a 0x75 # CHECK: xvftintrp.w.d $xr31, $xr12, $xr1 ++0xab 0x56 0x4b 0x75 # CHECK: xvftintrz.w.d $xr11, $xr21, $xr21 ++0x0f 0xf1 0x4b 0x75 # CHECK: xvftintrne.w.d $xr15, $xr8, $xr28 ++0xb4 0x8e 0x7a 0x75 # CHECK: xvshuf.h $xr20, $xr21, $xr3 ++0x56 0x7c 0x7b 0x75 # CHECK: xvshuf.w $xr22, $xr2, $xr31 ++0x6f 0xe8 0x7b 0x75 # CHECK: xvshuf.d $xr15, $xr3, $xr26 ++0xf5 0x62 0x7d 0x75 # CHECK: xvperm.w $xr21, $xr23, $xr24 ++0xbc 0x04 0x80 0x76 # CHECK: xvseqi.b $xr28, $xr5, 1 ++0x33 0xed 0x80 0x76 # CHECK: xvseqi.h $xr19, $xr9, -5 ++0x48 0x7a 0x81 0x76 # CHECK: xvseqi.w $xr8, $xr18, -2 ++0xc2 0xf2 0x81 0x76 # CHECK: xvseqi.d $xr2, $xr22, -4 ++0xa4 0x5a 0x82 0x76 # CHECK: xvslei.b $xr4, $xr21, -10 ++0x91 0xd2 0x82 0x76 # CHECK: xvslei.h $xr17, $xr20, -12 ++0x89 0x66 0x83 0x76 # CHECK: xvslei.w $xr9, $xr20, -7 ++0xd3 0xab 0x83 0x76 # CHECK: xvslei.d $xr19, $xr30, 10 ++0x44 0x07 0x84 0x76 # CHECK: xvslei.bu $xr4, $xr26, 1 ++0x0b 0x91 0x84 0x76 # CHECK: xvslei.hu $xr11, $xr8, 4 ++0x92 0x7d 0x85 0x76 # CHECK: xvslei.wu $xr18, $xr12, 31 ++0xfe 0xe8 0x85 0x76 # CHECK: xvslei.du $xr30, $xr7, 26 ++0xab 0x0b 0x86 0x76 # CHECK: xvslti.b $xr11, $xr29, 2 ++0x66 0xa3 0x86 0x76 # CHECK: xvslti.h $xr6, $xr27, 8 ++0xf5 0x06 0x87 0x76 # CHECK: xvslti.w $xr21, $xr23, 1 ++0xf2 0xef 0x87 0x76 # CHECK: xvslti.d $xr18, $xr31, -5 ++0x9b 0x45 0x88 0x76 # CHECK: xvslti.bu $xr27, $xr12, 17 ++0xd2 0xb1 0x88 0x76 # CHECK: xvslti.hu $xr18, $xr14, 12 ++0x84 0x39 0x89 0x76 # CHECK: xvslti.wu $xr4, $xr12, 14 ++0x1a 0xe0 0x89 0x76 # CHECK: xvslti.du $xr26, $xr0, 24 ++0x5e 0x14 0x8a 0x76 # CHECK: xvaddi.bu $xr30, $xr2, 5 ++0x36 0xa6 0x8a 0x76 # CHECK: xvaddi.hu $xr22, $xr17, 9 ++0x43 0x77 0x8b 0x76 # CHECK: xvaddi.wu $xr3, $xr26, 29 ++0x80 0xfa 0x8b 0x76 # CHECK: xvaddi.du $xr0, $xr20, 30 ++0x80 0x1e 0x8c 0x76 # CHECK: xvsubi.bu $xr0, $xr20, 7 ++0x04 0xcb 0x8c 0x76 # CHECK: xvsubi.hu $xr4, $xr24, 18 ++0x41 0x6b 0x8d 0x76 # CHECK: xvsubi.wu $xr1, $xr26, 26 ++0x89 0xa3 0x8d 0x76 # CHECK: xvsubi.du $xr9, $xr28, 8 ++0xa0 0x22 0x8e 0x76 # CHECK: xvbsll.v $xr0, $xr21, 8 ++0x04 0xf1 0x8e 0x76 # CHECK: xvbsrl.v $xr4, $xr8, 28 ++0x28 0x48 0x90 0x76 # CHECK: xvmaxi.b $xr8, $xr1, -14 ++0x93 0xc1 0x90 0x76 # CHECK: xvmaxi.h $xr19, $xr12, -16 ++0x3b 0x14 0x91 0x76 # CHECK: xvmaxi.w $xr27, $xr1, 5 ++0xe6 0x8c 0x91 0x76 # CHECK: xvmaxi.d $xr6, $xr7, 3 ++0xca 0x14 0x92 0x76 # CHECK: xvmini.b $xr10, $xr6, 5 ++0x48 0xd2 0x92 0x76 # CHECK: xvmini.h $xr8, $xr18, -12 ++0xbf 0x65 0x93 0x76 # CHECK: xvmini.w $xr31, $xr13, -7 ++0x6f 0xa7 0x93 0x76 # CHECK: xvmini.d $xr15, $xr27, 9 ++0x25 0x5a 0x94 0x76 # CHECK: xvmaxi.bu $xr5, $xr17, 22 ++0x66 0x90 0x94 0x76 # CHECK: xvmaxi.hu $xr6, $xr3, 4 ++0x9a 0x45 0x95 0x76 # CHECK: xvmaxi.wu $xr26, $xr12, 17 ++0x7e 0xf9 0x95 0x76 # CHECK: xvmaxi.du $xr30, $xr11, 30 ++0x0f 0x1d 0x96 0x76 # CHECK: xvmini.bu $xr15, $xr8, 7 ++0x32 0x87 0x96 0x76 # CHECK: xvmini.hu $xr18, $xr25, 1 ++0x90 0x03 0x97 0x76 # CHECK: xvmini.wu $xr16, $xr28, 0 ++0x6a 0xf6 0x97 0x76 # CHECK: xvmini.du $xr10, $xr19, 29 ++0x28 0x0b 0x9a 0x76 # CHECK: xvfrstpi.b $xr8, $xr25, 2 ++0x7c 0xea 0x9a 0x76 # CHECK: xvfrstpi.h $xr28, $xr19, 26 ++0x02 0x01 0x9c 0x76 # CHECK: xvclo.b $xr2, $xr8 ++0x2a 0x05 0x9c 0x76 # CHECK: xvclo.h $xr10, $xr9 ++0xe2 0x0b 0x9c 0x76 # CHECK: xvclo.w $xr2, $xr31 ++0x15 0x0f 0x9c 0x76 # CHECK: xvclo.d $xr21, $xr24 ++0x0d 0x13 0x9c 0x76 # CHECK: xvclz.b $xr13, $xr24 ++0xe4 0x17 0x9c 0x76 # CHECK: xvclz.h $xr4, $xr31 ++0x27 0x18 0x9c 0x76 # CHECK: xvclz.w $xr7, $xr1 ++0xcd 0x1e 0x9c 0x76 # CHECK: xvclz.d $xr13, $xr22 ++0x49 0x23 0x9c 0x76 # CHECK: xvpcnt.b $xr9, $xr26 ++0x6a 0x24 0x9c 0x76 # CHECK: xvpcnt.h $xr10, $xr3 ++0xf8 0x28 0x9c 0x76 # CHECK: xvpcnt.w $xr24, $xr7 ++0x05 0x2d 0x9c 0x76 # CHECK: xvpcnt.d $xr5, $xr8 ++0x73 0x31 0x9c 0x76 # CHECK: xvneg.b $xr19, $xr11 ++0xb5 0x36 0x9c 0x76 # CHECK: xvneg.h $xr21, $xr21 ++0x33 0x3a 0x9c 0x76 # CHECK: xvneg.w $xr19, $xr17 ++0xbf 0x3f 0x9c 0x76 # CHECK: xvneg.d $xr31, $xr29 ++0x76 0x43 0x9c 0x76 # CHECK: xvmskltz.b $xr22, $xr27 ++0x05 0x44 0x9c 0x76 # CHECK: xvmskltz.h $xr5, $xr0 ++0x98 0x4b 0x9c 0x76 # CHECK: xvmskltz.w $xr24, $xr28 ++0x59 0x4c 0x9c 0x76 # CHECK: xvmskltz.d $xr25, $xr2 ++0xde 0x53 0x9c 0x76 # CHECK: xvmskgez.b $xr30, $xr30 ++0x85 0x62 0x9c 0x76 # CHECK: xvmsknz.b $xr5, $xr20 ++0x21 0x9b 0x9c 0x76 # CHECK: xvseteqz.v $fcc1, $xr25 ++0xa5 0x9d 0x9c 0x76 # CHECK: xvsetnez.v $fcc5, $xr13 ++0x80 0xa0 0x9c 0x76 # CHECK: xvsetanyeqz.b $fcc0, $xr4 ++0xe0 0xa7 0x9c 0x76 # CHECK: xvsetanyeqz.h $fcc0, $xr31 ++0xc2 0xab 0x9c 0x76 # CHECK: xvsetanyeqz.w $fcc2, $xr30 ++0xe3 0xaf 0x9c 0x76 # CHECK: xvsetanyeqz.d $fcc3, $xr31 ++0xa1 0xb2 0x9c 0x76 # CHECK: xvsetallnez.b $fcc1, $xr21 ++0xa0 0xb6 0x9c 0x76 # CHECK: xvsetallnez.h $fcc0, $xr21 ++0x00 0xb8 0x9c 0x76 # CHECK: xvsetallnez.w $fcc0, $xr0 ++0xe1 0xbf 0x9c 0x76 # CHECK: xvsetallnez.d $fcc1, $xr31 ++0x95 0xc4 0x9c 0x76 # CHECK: xvflogb.s $xr21, $xr4 ++0x88 0xca 0x9c 0x76 # CHECK: xvflogb.d $xr8, $xr20 ++0xaf 0xd7 0x9c 0x76 # CHECK: xvfclass.s $xr15, $xr29 ++0xc7 0xd9 0x9c 0x76 # CHECK: xvfclass.d $xr7, $xr14 ++0x7c 0xe6 0x9c 0x76 # CHECK: xvfsqrt.s $xr28, $xr19 ++0xeb 0xeb 0x9c 0x76 # CHECK: xvfsqrt.d $xr11, $xr31 ++0xe6 0xf6 0x9c 0x76 # CHECK: xvfrecip.s $xr6, $xr23 ++0x00 0xfb 0x9c 0x76 # CHECK: xvfrecip.d $xr0, $xr24 ++0x08 0x06 0x9d 0x76 # CHECK: xvfrsqrt.s $xr8, $xr16 ++0x2f 0x0a 0x9d 0x76 # CHECK: xvfrsqrt.d $xr15, $xr17 ++0x24 0x37 0x9d 0x76 # CHECK: xvfrint.s $xr4, $xr25 ++0x81 0x3a 0x9d 0x76 # CHECK: xvfrint.d $xr1, $xr20 ++0x1d 0x46 0x9d 0x76 # CHECK: xvfrintrm.s $xr29, $xr16 ++0x44 0x49 0x9d 0x76 # CHECK: xvfrintrm.d $xr4, $xr10 ++0xed 0x57 0x9d 0x76 # CHECK: xvfrintrp.s $xr13, $xr31 ++0x74 0x59 0x9d 0x76 # CHECK: xvfrintrp.d $xr20, $xr11 ++0xbb 0x65 0x9d 0x76 # CHECK: xvfrintrz.s $xr27, $xr13 ++0x31 0x6b 0x9d 0x76 # CHECK: xvfrintrz.d $xr17, $xr25 ++0x0e 0x75 0x9d 0x76 # CHECK: xvfrintrne.s $xr14, $xr8 ++0x57 0x7b 0x9d 0x76 # CHECK: xvfrintrne.d $xr23, $xr26 ++0xe4 0xea 0x9d 0x76 # CHECK: xvfcvtl.s.h $xr4, $xr23 ++0x6e 0xed 0x9d 0x76 # CHECK: xvfcvth.s.h $xr14, $xr11 ++0xfa 0xf3 0x9d 0x76 # CHECK: xvfcvtl.d.s $xr26, $xr31 ++0x8d 0xf7 0x9d 0x76 # CHECK: xvfcvth.d.s $xr13, $xr28 ++0x8e 0x03 0x9e 0x76 # CHECK: xvffint.s.w $xr14, $xr28 ++0x00 0x05 0x9e 0x76 # CHECK: xvffint.s.wu $xr0, $xr8 ++0x65 0x0b 0x9e 0x76 # CHECK: xvffint.d.l $xr5, $xr27 ++0x5d 0x0e 0x9e 0x76 # CHECK: xvffint.d.lu $xr29, $xr18 ++0x89 0x12 0x9e 0x76 # CHECK: xvffintl.d.w $xr9, $xr20 ++0xab 0x15 0x9e 0x76 # CHECK: xvffinth.d.w $xr11, $xr13 ++0x86 0x30 0x9e 0x76 # CHECK: xvftint.w.s $xr6, $xr4 ++0xcb 0x36 0x9e 0x76 # CHECK: xvftint.l.d $xr11, $xr22 ++0xb4 0x3a 0x9e 0x76 # CHECK: xvftintrm.w.s $xr20, $xr21 ++0x7c 0x3f 0x9e 0x76 # CHECK: xvftintrm.l.d $xr28, $xr27 ++0x0e 0x42 0x9e 0x76 # CHECK: xvftintrp.w.s $xr14, $xr16 ++0x2e 0x47 0x9e 0x76 # CHECK: xvftintrp.l.d $xr14, $xr25 ++0xc5 0x4b 0x9e 0x76 # CHECK: xvftintrz.w.s $xr5, $xr30 ++0x6b 0x4e 0x9e 0x76 # CHECK: xvftintrz.l.d $xr11, $xr19 ++0xfb 0x52 0x9e 0x76 # CHECK: xvftintrne.w.s $xr27, $xr23 ++0xbb 0x55 0x9e 0x76 # CHECK: xvftintrne.l.d $xr27, $xr13 ++0x5c 0x58 0x9e 0x76 # CHECK: xvftint.wu.s $xr28, $xr2 ++0x9b 0x5d 0x9e 0x76 # CHECK: xvftint.lu.d $xr27, $xr12 ++0xb5 0x73 0x9e 0x76 # CHECK: xvftintrz.wu.s $xr21, $xr29 ++0x53 0x74 0x9e 0x76 # CHECK: xvftintrz.lu.d $xr19, $xr2 ++0x42 0x82 0x9e 0x76 # CHECK: xvftintl.l.s $xr2, $xr18 ++0xc8 0x87 0x9e 0x76 # CHECK: xvftinth.l.s $xr8, $xr30 ++0x2d 0x8a 0x9e 0x76 # CHECK: xvftintrml.l.s $xr13, $xr17 ++0x5e 0x8f 0x9e 0x76 # CHECK: xvftintrmh.l.s $xr30, $xr26 ++0x4b 0x93 0x9e 0x76 # CHECK: xvftintrpl.l.s $xr11, $xr26 ++0x7e 0x95 0x9e 0x76 # CHECK: xvftintrph.l.s $xr30, $xr11 ++0xf9 0x98 0x9e 0x76 # CHECK: xvftintrzl.l.s $xr25, $xr7 ++0xac 0x9c 0x9e 0x76 # CHECK: xvftintrzh.l.s $xr12, $xr5 ++0x08 0xa3 0x9e 0x76 # CHECK: xvftintrnel.l.s $xr8, $xr24 ++0x19 0xa7 0x9e 0x76 # CHECK: xvftintrneh.l.s $xr25, $xr24 ++0xb7 0xe0 0x9e 0x76 # CHECK: xvexth.h.b $xr23, $xr5 ++0xd9 0xe4 0x9e 0x76 # CHECK: xvexth.w.h $xr25, $xr6 ++0x67 0xeb 0x9e 0x76 # CHECK: xvexth.d.w $xr7, $xr27 ++0x4e 0xed 0x9e 0x76 # CHECK: xvexth.q.d $xr14, $xr10 ++0xa0 0xf2 0x9e 0x76 # CHECK: xvexth.hu.bu $xr0, $xr21 ++0xcf 0xf6 0x9e 0x76 # CHECK: xvexth.wu.hu $xr15, $xr22 ++0xf8 0xf9 0x9e 0x76 # CHECK: xvexth.du.wu $xr24, $xr15 ++0x44 0xfc 0x9e 0x76 # CHECK: xvexth.qu.du $xr4, $xr2 ++0xd5 0x00 0x9f 0x76 # CHECK: xvreplgr2vr.b $xr21, $r6 ++0x2b 0x04 0x9f 0x76 # CHECK: xvreplgr2vr.h $xr11, $ra ++0xcd 0x0a 0x9f 0x76 # CHECK: xvreplgr2vr.w $xr13, $r22 ++0x29 0x0e 0x9f 0x76 # CHECK: xvreplgr2vr.d $xr9, $r17 ++0x12 0x12 0x9f 0x76 # CHECK: vext2xv.h.b $xr18, $xr16 ++0xe3 0x16 0x9f 0x76 # CHECK: vext2xv.w.b $xr3, $xr23 ++0x1e 0x1a 0x9f 0x76 # CHECK: vext2xv.d.b $xr30, $xr16 ++0xfc 0x1e 0x9f 0x76 # CHECK: vext2xv.w.h $xr28, $xr23 ++0x24 0x20 0x9f 0x76 # CHECK: vext2xv.d.h $xr4, $xr1 ++0x97 0x25 0x9f 0x76 # CHECK: vext2xv.d.w $xr23, $xr12 ++0xa0 0x28 0x9f 0x76 # CHECK: vext2xv.hu.bu $xr0, $xr5 ++0x81 0x2c 0x9f 0x76 # CHECK: vext2xv.wu.bu $xr1, $xr4 ++0x71 0x31 0x9f 0x76 # CHECK: vext2xv.du.bu $xr17, $xr11 ++0x1c 0x34 0x9f 0x76 # CHECK: vext2xv.wu.hu $xr28, $xr0 ++0x3a 0x3b 0x9f 0x76 # CHECK: vext2xv.du.hu $xr26, $xr25 ++0xdd 0x3d 0x9f 0x76 # CHECK: vext2xv.du.wu $xr29, $xr14 ++0xc3 0xb6 0x9f 0x76 # CHECK: xvhseli.d $xr3, $xr22, 13 ++0xc0 0x29 0xa0 0x76 # CHECK: xvrotri.b $xr0, $xr14, 2 ++0xe0 0x6c 0xa0 0x76 # CHECK: xvrotri.h $xr0, $xr7, 11 ++0x38 0x8c 0xa0 0x76 # CHECK: xvrotri.w $xr24, $xr1, 3 ++0xff 0x40 0xa1 0x76 # CHECK: xvrotri.d $xr31, $xr7, 16 ++0x74 0x26 0xa4 0x76 # CHECK: xvsrlri.b $xr20, $xr19, 1 ++0x3c 0x6c 0xa4 0x76 # CHECK: xvsrlri.h $xr28, $xr1, 11 ++0x59 0xec 0xa4 0x76 # CHECK: xvsrlri.w $xr25, $xr2, 27 ++0x3d 0x19 0xa5 0x76 # CHECK: xvsrlri.d $xr29, $xr9, 6 ++0xa7 0x28 0xa8 0x76 # CHECK: xvsrari.b $xr7, $xr5, 2 ++0x40 0x65 0xa8 0x76 # CHECK: xvsrari.h $xr0, $xr10, 9 ++0x11 0xab 0xa8 0x76 # CHECK: xvsrari.w $xr17, $xr24, 10 ++0xc7 0x99 0xa9 0x76 # CHECK: xvsrari.d $xr7, $xr14, 38 ++0xe5 0xc7 0xeb 0x76 # CHECK: xvinsgr2vr.w $xr5, $r31, 1 ++0x45 0xe7 0xeb 0x76 # CHECK: xvinsgr2vr.d $xr5, $r26, 1 ++0x92 0xcb 0xef 0x76 # CHECK: xvpickve2gr.w $r18, $xr28, 2 ++0x54 0xe5 0xef 0x76 # CHECK: xvpickve2gr.d $r20, $xr10, 1 ++0x89 0xd9 0xf3 0x76 # CHECK: xvpickve2gr.wu $r9, $xr12, 6 ++0xa9 0xe9 0xf3 0x76 # CHECK: xvpickve2gr.du $r9, $xr13, 2 ++0xc1 0x97 0xf7 0x76 # CHECK: xvrepl128vei.b $xr1, $xr30, 5 ++0xad 0xdd 0xf7 0x76 # CHECK: xvrepl128vei.h $xr13, $xr13, 7 ++0xa7 0xe9 0xf7 0x76 # CHECK: xvrepl128vei.w $xr7, $xr13, 2 ++0xe2 0xf7 0xf7 0x76 # CHECK: xvrepl128vei.d $xr2, $xr31, 1 ++0xa4 0xcd 0xff 0x76 # CHECK: xvinsve0.w $xr4, $xr13, 3 ++0x3b 0xe3 0xff 0x76 # CHECK: xvinsve0.d $xr27, $xr25, 0 ++0x7d 0xde 0x03 0x77 # CHECK: xvpickve.w $xr29, $xr19, 7 ++0x13 0xee 0x03 0x77 # CHECK: xvpickve.d $xr19, $xr16, 3 ++0xa5 0x00 0x07 0x77 # CHECK: xvreplve0.b $xr5, $xr5 ++0x0e 0x83 0x07 0x77 # CHECK: xvreplve0.h $xr14, $xr24 ++0xaf 0xc1 0x07 0x77 # CHECK: xvreplve0.w $xr15, $xr13 ++0x94 0xe2 0x07 0x77 # CHECK: xvreplve0.d $xr20, $xr20 ++0x45 0xf1 0x07 0x77 # CHECK: xvreplve0.q $xr5, $xr10 ++0x1f 0x2c 0x08 0x77 # CHECK: xvsllwil.h.b $xr31, $xr0, 3 ++0x15 0x5f 0x08 0x77 # CHECK: xvsllwil.w.h $xr21, $xr24, 7 ++0x1a 0xcb 0x08 0x77 # CHECK: xvsllwil.d.w $xr26, $xr24, 18 ++0xc5 0x00 0x09 0x77 # CHECK: xvextl.q.d $xr5, $xr6 ++0xed 0x3b 0x0c 0x77 # CHECK: xvsllwil.hu.bu $xr13, $xr31, 6 ++0x93 0x62 0x0c 0x77 # CHECK: xvsllwil.wu.hu $xr19, $xr20, 8 ++0xae 0x89 0x0c 0x77 # CHECK: xvsllwil.du.wu $xr14, $xr13, 2 ++0xea 0x00 0x0d 0x77 # CHECK: xvextl.qu.du $xr10, $xr7 ++0xbf 0x36 0x10 0x77 # CHECK: xvbitclri.b $xr31, $xr21, 5 ++0x9a 0x48 0x10 0x77 # CHECK: xvbitclri.h $xr26, $xr4, 2 ++0x35 0xbf 0x10 0x77 # CHECK: xvbitclri.w $xr21, $xr25, 15 ++0x0e 0xfc 0x11 0x77 # CHECK: xvbitclri.d $xr14, $xr0, 63 ++0x30 0x34 0x14 0x77 # CHECK: xvbitseti.b $xr16, $xr1, 5 ++0xd3 0x4f 0x14 0x77 # CHECK: xvbitseti.h $xr19, $xr30, 3 ++0xd2 0xee 0x14 0x77 # CHECK: xvbitseti.w $xr18, $xr22, 27 ++0x2f 0xa0 0x15 0x77 # CHECK: xvbitseti.d $xr15, $xr1, 40 ++0xb7 0x20 0x18 0x77 # CHECK: xvbitrevi.b $xr23, $xr5, 0 ++0x45 0x5c 0x18 0x77 # CHECK: xvbitrevi.h $xr5, $xr2, 7 ++0xd7 0xb0 0x18 0x77 # CHECK: xvbitrevi.w $xr23, $xr6, 12 ++0xd2 0x85 0x19 0x77 # CHECK: xvbitrevi.d $xr18, $xr14, 33 ++0x5b 0x33 0x24 0x77 # CHECK: xvsat.b $xr27, $xr26, 4 ++0xa4 0x56 0x24 0x77 # CHECK: xvsat.h $xr4, $xr21, 5 ++0x7d 0xab 0x24 0x77 # CHECK: xvsat.w $xr29, $xr27, 10 ++0x0e 0xf0 0x25 0x77 # CHECK: xvsat.d $xr14, $xr0, 60 ++0x3f 0x2f 0x28 0x77 # CHECK: xvsat.bu $xr31, $xr25, 3 ++0x91 0x78 0x28 0x77 # CHECK: xvsat.hu $xr17, $xr4, 14 ++0x31 0x92 0x28 0x77 # CHECK: xvsat.wu $xr17, $xr17, 4 ++0x0b 0xac 0x29 0x77 # CHECK: xvsat.du $xr11, $xr0, 43 ++0x18 0x2b 0x2c 0x77 # CHECK: xvslli.b $xr24, $xr24, 2 ++0x37 0x5d 0x2c 0x77 # CHECK: xvslli.h $xr23, $xr9, 7 ++0x8d 0xc1 0x2c 0x77 # CHECK: xvslli.w $xr13, $xr12, 16 ++0xcb 0x46 0x2d 0x77 # CHECK: xvslli.d $xr11, $xr22, 17 ++0xc9 0x25 0x30 0x77 # CHECK: xvsrli.b $xr9, $xr14, 1 ++0x96 0x7e 0x30 0x77 # CHECK: xvsrli.h $xr22, $xr20, 15 ++0xc5 0xd3 0x30 0x77 # CHECK: xvsrli.w $xr5, $xr30, 20 ++0x01 0xea 0x31 0x77 # CHECK: xvsrli.d $xr1, $xr16, 58 ++0xd2 0x28 0x34 0x77 # CHECK: xvsrai.b $xr18, $xr6, 2 ++0x15 0x72 0x34 0x77 # CHECK: xvsrai.h $xr21, $xr16, 12 ++0x2d 0xc6 0x34 0x77 # CHECK: xvsrai.w $xr13, $xr17, 17 ++0x83 0xcd 0x35 0x77 # CHECK: xvsrai.d $xr3, $xr12, 51 ++0xe1 0x50 0x40 0x77 # CHECK: xvsrlni.b.h $xr1, $xr7, 4 ++0xb0 0xe6 0x40 0x77 # CHECK: xvsrlni.h.w $xr16, $xr21, 25 ++0x4d 0xc1 0x41 0x77 # CHECK: xvsrlni.w.d $xr13, $xr10, 48 ++0x91 0xf9 0x43 0x77 # CHECK: xvsrlni.d.q $xr17, $xr12, 126 ++0x71 0x7e 0x44 0x77 # CHECK: xvsrlrni.b.h $xr17, $xr19, 15 ++0x15 0xbb 0x44 0x77 # CHECK: xvsrlrni.h.w $xr21, $xr24, 14 ++0xf4 0x0f 0x45 0x77 # CHECK: xvsrlrni.w.d $xr20, $xr31, 3 ++0x1c 0x33 0x47 0x77 # CHECK: xvsrlrni.d.q $xr28, $xr24, 76 ++0xfa 0x5c 0x48 0x77 # CHECK: xvssrlni.b.h $xr26, $xr7, 7 ++0x9b 0xe7 0x48 0x77 # CHECK: xvssrlni.h.w $xr27, $xr28, 25 ++0x04 0x41 0x49 0x77 # CHECK: xvssrlni.w.d $xr4, $xr8, 16 ++0x2e 0x52 0x4b 0x77 # CHECK: xvssrlni.d.q $xr14, $xr17, 84 ++0xd1 0x48 0x4c 0x77 # CHECK: xvssrlni.bu.h $xr17, $xr6, 2 ++0x46 0x8f 0x4c 0x77 # CHECK: xvssrlni.hu.w $xr6, $xr26, 3 ++0x4a 0xda 0x4d 0x77 # CHECK: xvssrlni.wu.d $xr10, $xr18, 54 ++0x5d 0x1b 0x4f 0x77 # CHECK: xvssrlni.du.q $xr29, $xr26, 70 ++0x26 0x59 0x50 0x77 # CHECK: xvssrlrni.b.h $xr6, $xr9, 6 ++0x16 0x85 0x50 0x77 # CHECK: xvssrlrni.h.w $xr22, $xr8, 1 ++0x3c 0x71 0x51 0x77 # CHECK: xvssrlrni.w.d $xr28, $xr9, 28 ++0x74 0xa3 0x53 0x77 # CHECK: xvssrlrni.d.q $xr20, $xr27, 104 ++0x99 0x70 0x54 0x77 # CHECK: xvssrlrni.bu.h $xr25, $xr4, 12 ++0xb5 0x97 0x54 0x77 # CHECK: xvssrlrni.hu.w $xr21, $xr29, 5 ++0x01 0xda 0x55 0x77 # CHECK: xvssrlrni.wu.d $xr1, $xr16, 54 ++0xfd 0x64 0x56 0x77 # CHECK: xvssrlrni.du.q $xr29, $xr7, 25 ++0x30 0x53 0x58 0x77 # CHECK: xvsrani.b.h $xr16, $xr25, 4 ++0x4d 0x99 0x58 0x77 # CHECK: xvsrani.h.w $xr13, $xr10, 6 ++0xa7 0xd6 0x59 0x77 # CHECK: xvsrani.w.d $xr7, $xr21, 53 ++0x5a 0xde 0x5a 0x77 # CHECK: xvsrani.d.q $xr26, $xr18, 55 ++0xb1 0x6e 0x5c 0x77 # CHECK: xvsrarni.b.h $xr17, $xr21, 11 ++0xcf 0x8b 0x5c 0x77 # CHECK: xvsrarni.h.w $xr15, $xr30, 2 ++0x77 0x7d 0x5d 0x77 # CHECK: xvsrarni.w.d $xr23, $xr11, 31 ++0x36 0x43 0x5e 0x77 # CHECK: xvsrarni.d.q $xr22, $xr25, 16 ++0x93 0x6a 0x60 0x77 # CHECK: xvssrani.b.h $xr19, $xr20, 10 ++0x39 0xd9 0x60 0x77 # CHECK: xvssrani.h.w $xr25, $xr9, 22 ++0x57 0x1c 0x61 0x77 # CHECK: xvssrani.w.d $xr23, $xr2, 7 ++0x06 0xfd 0x63 0x77 # CHECK: xvssrani.d.q $xr6, $xr8, 127 ++0xdb 0x55 0x64 0x77 # CHECK: xvssrani.bu.h $xr27, $xr14, 5 ++0x2e 0xd0 0x64 0x77 # CHECK: xvssrani.hu.w $xr14, $xr1, 20 ++0x8a 0xec 0x65 0x77 # CHECK: xvssrani.wu.d $xr10, $xr4, 59 ++0x31 0x48 0x67 0x77 # CHECK: xvssrani.du.q $xr17, $xr1, 82 ++0x5b 0x7e 0x68 0x77 # CHECK: xvssrarni.b.h $xr27, $xr18, 15 ++0x70 0xbc 0x68 0x77 # CHECK: xvssrarni.h.w $xr16, $xr3, 15 ++0x3a 0x4b 0x69 0x77 # CHECK: xvssrarni.w.d $xr26, $xr25, 18 ++0x3c 0x03 0x6a 0x77 # CHECK: xvssrarni.d.q $xr28, $xr25, 0 ++0x81 0x61 0x6c 0x77 # CHECK: xvssrarni.bu.h $xr1, $xr12, 8 ++0x63 0xff 0x6c 0x77 # CHECK: xvssrarni.hu.w $xr3, $xr27, 31 ++0x78 0xd3 0x6d 0x77 # CHECK: xvssrarni.wu.d $xr24, $xr27, 52 ++0x65 0xc0 0x6f 0x77 # CHECK: xvssrarni.du.q $xr5, $xr3, 112 ++0x35 0x8f 0x82 0x77 # CHECK: xvextrins.d $xr21, $xr25, 163 ++0x33 0x72 0x84 0x77 # CHECK: xvextrins.w $xr19, $xr17, 28 ++0xfe 0x3c 0x89 0x77 # CHECK: xvextrins.h $xr30, $xr7, 79 ++0xe1 0x4b 0x8f 0x77 # CHECK: xvextrins.b $xr1, $xr31, 210 ++0xc3 0x52 0x92 0x77 # CHECK: xvshuf4i.b $xr3, $xr22, 148 ++0xc2 0x8a 0x94 0x77 # CHECK: xvshuf4i.h $xr2, $xr22, 34 ++0x7f 0x96 0x9a 0x77 # CHECK: xvshuf4i.w $xr31, $xr19, 165 ++0x3f 0x3a 0x9c 0x77 # CHECK: xvshuf4i.d $xr31, $xr17, 14 ++0x1b 0x40 0xc5 0x77 # CHECK: xvbitseli.b $xr27, $xr0, 80 ++0x57 0x64 0xd2 0x77 # CHECK: xvandi.b $xr23, $xr2, 153 ++0x9b 0xf3 0xd6 0x77 # CHECK: xvori.b $xr27, $xr28, 188 ++0x3c 0xf8 0xdb 0x77 # CHECK: xvxori.b $xr28, $xr1, 254 ++0x44 0x90 0xdc 0x77 # CHECK: xvnori.b $xr4, $xr2, 36 ++0x1a 0xc2 0xe2 0x77 # CHECK: xvldi $xr26, -2544 ++0x16 0xa3 0xe6 0x77 # CHECK: xvpermi.w $xr22, $xr24, 168 ++0xee 0x23 0xea 0x77 # CHECK: xvpermi.d $xr14, $xr31, 136 ++0xdc 0x4d 0xef 0x77 # CHECK: xvpermi.q $xr28, $xr14, 211 ++0xe0 0x7f 0x1e 0x70 # CHECK: vaddwev.h.b $vr0, $vr31, $vr31 ++0x83 0xdc 0x1e 0x70 # CHECK: vaddwev.w.h $vr3, $vr4, $vr23 ++0x5e 0x2f 0x1f 0x70 # CHECK: vaddwev.d.w $vr30, $vr26, $vr11 ++0xb9 0xb7 0x1f 0x70 # CHECK: vaddwev.q.d $vr25, $vr29, $vr13 ++0x8b 0x07 0x20 0x70 # CHECK: vsubwev.h.b $vr11, $vr28, $vr1 ++0xe9 0x95 0x20 0x70 # CHECK: vsubwev.w.h $vr9, $vr15, $vr5 ++0x31 0x29 0x21 0x70 # CHECK: vsubwev.d.w $vr17, $vr9, $vr10 ++0x5a 0xae 0x21 0x70 # CHECK: vsubwev.q.d $vr26, $vr18, $vr11 ++0x67 0x49 0x22 0x70 # CHECK: vaddwod.h.b $vr7, $vr11, $vr18 ++0xe0 0xb0 0x22 0x70 # CHECK: vaddwod.w.h $vr0, $vr7, $vr12 ++0x7e 0x43 0x23 0x70 # CHECK: vaddwod.d.w $vr30, $vr27, $vr16 ++0x82 0xf6 0x23 0x70 # CHECK: vaddwod.q.d $vr2, $vr20, $vr29 ++0xfa 0x4c 0x24 0x70 # CHECK: vsubwod.h.b $vr26, $vr7, $vr19 ++0x73 0xac 0x24 0x70 # CHECK: vsubwod.w.h $vr19, $vr3, $vr11 ++0x9f 0x33 0x25 0x70 # CHECK: vsubwod.d.w $vr31, $vr28, $vr12 ++0x01 0xc3 0x25 0x70 # CHECK: vsubwod.q.d $vr1, $vr24, $vr16 ++0xa3 0x77 0x2e 0x70 # CHECK: vaddwev.h.bu $vr3, $vr29, $vr29 ++0xea 0xa9 0x2e 0x70 # CHECK: vaddwev.w.hu $vr10, $vr15, $vr10 ++0xb8 0x13 0x2f 0x70 # CHECK: vaddwev.d.wu $vr24, $vr29, $vr4 ++0xf1 0x82 0x2f 0x70 # CHECK: vaddwev.q.du $vr17, $vr23, $vr0 ++0x79 0x51 0x30 0x70 # CHECK: vsubwev.h.bu $vr25, $vr11, $vr20 ++0xf1 0xd1 0x30 0x70 # CHECK: vsubwev.w.hu $vr17, $vr15, $vr20 ++0x2a 0x17 0x31 0x70 # CHECK: vsubwev.d.wu $vr10, $vr25, $vr5 ++0x7d 0xa0 0x31 0x70 # CHECK: vsubwev.q.du $vr29, $vr3, $vr8 ++0x0a 0x64 0x32 0x70 # CHECK: vaddwod.h.bu $vr10, $vr0, $vr25 ++0x62 0xdf 0x32 0x70 # CHECK: vaddwod.w.hu $vr2, $vr27, $vr23 ++0x02 0x58 0x33 0x70 # CHECK: vaddwod.d.wu $vr2, $vr0, $vr22 ++0x40 0x8c 0x33 0x70 # CHECK: vaddwod.q.du $vr0, $vr2, $vr3 ++0xee 0x0f 0x34 0x70 # CHECK: vsubwod.h.bu $vr14, $vr31, $vr3 ++0x55 0x9c 0x34 0x70 # CHECK: vsubwod.w.hu $vr21, $vr2, $vr7 ++0x0b 0x49 0x35 0x70 # CHECK: vsubwod.d.wu $vr11, $vr8, $vr18 ++0x9e 0x82 0x35 0x70 # CHECK: vsubwod.q.du $vr30, $vr20, $vr0 ++0x93 0x47 0x3e 0x70 # CHECK: vaddwev.h.bu.b $vr19, $vr28, $vr17 ++0xee 0xf9 0x3e 0x70 # CHECK: vaddwev.w.hu.h $vr14, $vr15, $vr30 ++0xef 0x28 0x3f 0x70 # CHECK: vaddwev.d.wu.w $vr15, $vr7, $vr10 ++0xd3 0xf9 0x3f 0x70 # CHECK: vaddwev.q.du.d $vr19, $vr14, $vr30 ++0x4f 0x22 0x40 0x70 # CHECK: vaddwod.h.bu.b $vr15, $vr18, $vr8 ++0x73 0x9b 0x40 0x70 # CHECK: vaddwod.w.hu.h $vr19, $vr27, $vr6 ++0x67 0x3d 0x41 0x70 # CHECK: vaddwod.d.wu.w $vr7, $vr11, $vr15 ++0x00 0xe8 0x41 0x70 # CHECK: vaddwod.q.du.d $vr0, $vr0, $vr26 ++0x78 0x56 0x90 0x70 # CHECK: vmulwev.h.b $vr24, $vr19, $vr21 ++0xcd 0xca 0x90 0x70 # CHECK: vmulwev.w.h $vr13, $vr22, $vr18 ++0xd8 0x36 0x91 0x70 # CHECK: vmulwev.d.w $vr24, $vr22, $vr13 ++0xc4 0xfa 0x91 0x70 # CHECK: vmulwev.q.d $vr4, $vr22, $vr30 ++0x56 0x63 0x92 0x70 # CHECK: vmulwod.h.b $vr22, $vr26, $vr24 ++0x91 0x91 0x92 0x70 # CHECK: vmulwod.w.h $vr17, $vr12, $vr4 ++0xf0 0x69 0x93 0x70 # CHECK: vmulwod.d.w $vr16, $vr15, $vr26 ++0x03 0x96 0x93 0x70 # CHECK: vmulwod.q.d $vr3, $vr16, $vr5 ++0x7f 0x4e 0x98 0x70 # CHECK: vmulwev.h.bu $vr31, $vr19, $vr19 ++0xf6 0x97 0x98 0x70 # CHECK: vmulwev.w.hu $vr22, $vr31, $vr5 ++0x80 0x78 0x99 0x70 # CHECK: vmulwev.d.wu $vr0, $vr4, $vr30 ++0x7f 0xd0 0x99 0x70 # CHECK: vmulwev.q.du $vr31, $vr3, $vr20 ++0xf9 0x34 0x9a 0x70 # CHECK: vmulwod.h.bu $vr25, $vr7, $vr13 ++0x81 0xb1 0x9a 0x70 # CHECK: vmulwod.w.hu $vr1, $vr12, $vr12 ++0xef 0x79 0x9b 0x70 # CHECK: vmulwod.d.wu $vr15, $vr15, $vr30 ++0x8d 0x9b 0x9b 0x70 # CHECK: vmulwod.q.du $vr13, $vr28, $vr6 ++0x48 0x0f 0xa0 0x70 # CHECK: vmulwev.h.bu.b $vr8, $vr26, $vr3 ++0x2a 0x87 0xa0 0x70 # CHECK: vmulwev.w.hu.h $vr10, $vr25, $vr1 ++0x09 0x4c 0xa1 0x70 # CHECK: vmulwev.d.wu.w $vr9, $vr0, $vr19 ++0x0d 0xdf 0xa1 0x70 # CHECK: vmulwev.q.du.d $vr13, $vr24, $vr23 ++0x14 0x38 0xa2 0x70 # CHECK: vmulwod.h.bu.b $vr20, $vr0, $vr14 ++0x90 0x8e 0xa2 0x70 # CHECK: vmulwod.w.hu.h $vr16, $vr20, $vr3 ++0xe5 0x6e 0xa3 0x70 # CHECK: vmulwod.d.wu.w $vr5, $vr23, $vr27 ++0xde 0xf7 0xa3 0x70 # CHECK: vmulwod.q.du.d $vr30, $vr30, $vr29 ++0x12 0x20 0xac 0x70 # CHECK: vmaddwev.h.b $vr18, $vr0, $vr8 ++0xdd 0x9e 0xac 0x70 # CHECK: vmaddwev.w.h $vr29, $vr22, $vr7 ++0xbc 0x7d 0xad 0x70 # CHECK: vmaddwev.d.w $vr28, $vr13, $vr31 ++0x65 0xb4 0xad 0x70 # CHECK: vmaddwev.q.d $vr5, $vr3, $vr13 ++0x24 0x24 0xae 0x70 # CHECK: vmaddwod.h.b $vr4, $vr1, $vr9 ++0x3a 0xe1 0xae 0x70 # CHECK: vmaddwod.w.h $vr26, $vr9, $vr24 ++0x7e 0x34 0xaf 0x70 # CHECK: vmaddwod.d.w $vr30, $vr3, $vr13 ++0xaf 0xf5 0xaf 0x70 # CHECK: vmaddwod.q.d $vr15, $vr13, $vr29 ++0x98 0x16 0xb4 0x70 # CHECK: vmaddwev.h.bu $vr24, $vr20, $vr5 ++0x83 0xa0 0xb4 0x70 # CHECK: vmaddwev.w.hu $vr3, $vr4, $vr8 ++0x7b 0x12 0xb5 0x70 # CHECK: vmaddwev.d.wu $vr27, $vr19, $vr4 ++0x7c 0xf7 0xb5 0x70 # CHECK: vmaddwev.q.du $vr28, $vr27, $vr29 ++0x85 0x6a 0xb6 0x70 # CHECK: vmaddwod.h.bu $vr5, $vr20, $vr26 ++0xd5 0xab 0xb6 0x70 # CHECK: vmaddwod.w.hu $vr21, $vr30, $vr10 ++0x67 0x51 0xb7 0x70 # CHECK: vmaddwod.d.wu $vr7, $vr11, $vr20 ++0x5e 0xe2 0xb7 0x70 # CHECK: vmaddwod.q.du $vr30, $vr18, $vr24 ++0x24 0x10 0xbc 0x70 # CHECK: vmaddwev.h.bu.b $vr4, $vr1, $vr4 ++0x79 0xbd 0xbc 0x70 # CHECK: vmaddwev.w.hu.h $vr25, $vr11, $vr15 ++0x0a 0x52 0xbd 0x70 # CHECK: vmaddwev.d.wu.w $vr10, $vr16, $vr20 ++0x96 0xde 0xbd 0x70 # CHECK: vmaddwev.q.du.d $vr22, $vr20, $vr23 ++0x3f 0x6f 0xbe 0x70 # CHECK: vmaddwod.h.bu.b $vr31, $vr25, $vr27 ++0x48 0xe2 0xbe 0x70 # CHECK: vmaddwod.w.hu.h $vr8, $vr18, $vr24 ++0xb2 0x29 0xbf 0x70 # CHECK: vmaddwod.d.wu.w $vr18, $vr13, $vr10 ++0xaa 0xbc 0xbf 0x70 # CHECK: vmaddwod.q.du.d $vr10, $vr5, $vr15 +diff --git a/llvm/test/Object/LoongArch/elf-flags.yaml b/llvm/test/Object/LoongArch/elf-flags.yaml +new file mode 100644 +index 000000000..b313d3b2b +--- /dev/null ++++ b/llvm/test/Object/LoongArch/elf-flags.yaml +@@ -0,0 +1,22 @@ ++# RUN: yaml2obj %s > %t ++# RUN: llvm-readobj --file-headers %t | FileCheck --check-prefix=OBJ %s ++# RUN: obj2yaml %t | FileCheck --check-prefix=YAML %s ++ ++# OBJ: Flags [ (0x3) ++# OBJ-NEXT: EF_LARCH_ABI_LP64 (0x3) ++# OBJ-NEXT: ] ++ ++# YAML: FileHeader: ++# YAML-NEXT: Class: ELFCLASS64 ++# YAML-NEXT: Data: ELFDATA2LSB ++# YAML-NEXT: Type: ET_EXEC ++# YAML-NEXT: Machine: EM_LOONGARCH ++# YAML-NEXT: Flags: [ EF_LARCH_ABI_LP64 ] ++ ++--- !ELF ++FileHeader: ++ Class: ELFCLASS64 ++ Data: ELFDATA2LSB ++ Type: ET_EXEC ++ Machine: EM_LOONGARCH ++ Flags: [ EF_LARCH_ABI_LP64 ] +diff --git a/llvm/test/Object/LoongArch/elf-loongarch64-rel.yaml b/llvm/test/Object/LoongArch/elf-loongarch64-rel.yaml +new file mode 100644 +index 000000000..0bf2bedc5 +--- /dev/null ++++ b/llvm/test/Object/LoongArch/elf-loongarch64-rel.yaml +@@ -0,0 +1,193 @@ ++# RUN: yaml2obj %s > %t ++# RUN: llvm-readobj -r %t | FileCheck --check-prefix=OBJ %s ++# RUN: obj2yaml %t | FileCheck --check-prefix=YAML %s ++ ++# OBJ: Relocations [ ++# OBJ-NEXT: Section (2) .rela.text { ++# OBJ-NEXT: 0x40 R_LARCH_SOP_PUSH_PLT_PCREL foo 0x0 ++# OBJ-NEXT: 0x40 R_LARCH_SOP_POP_32_S_0_10_10_16_S2 - 0x0 ++# OBJ-NEXT: 0x44 R_LARCH_SOP_PUSH_PCREL _GLOBAL_OFFSET_TABLE_ 0x800 ++# OBJ-NEXT: 0x44 R_LARCH_SOP_PUSH_GPREL shared 0x0 ++# OBJ-NEXT: 0x44 R_LARCH_SOP_ADD - 0x0 ++# OBJ-NEXT: 0x44 R_LARCH_SOP_PUSH_ABSOLUTE - 0xC ++# OBJ-NEXT: 0x44 R_LARCH_SOP_SR - 0x0 ++# OBJ-NEXT: 0x44 R_LARCH_SOP_POP_32_S_5_20 - 0x0 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_PUSH_PCREL _GLOBAL_OFFSET_TABLE_ 0x4 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_PUSH_GPREL shared 0x0 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_ADD - 0x0 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_PUSH_PCREL _GLOBAL_OFFSET_TABLE_ 0x804 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_PUSH_GPREL shared 0x0 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_ADD - 0x0 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_PUSH_ABSOLUTE - 0xC ++# OBJ-NEXT: 0x48 R_LARCH_SOP_SR - 0x0 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_PUSH_ABSOLUTE - 0xC ++# OBJ-NEXT: 0x48 R_LARCH_SOP_SL - 0x0 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_SUB - 0x0 ++# OBJ-NEXT: 0x48 R_LARCH_SOP_POP_32_S_10_12 - 0x0 ++# OBJ-NEXT: 0x50 R_LARCH_SOP_PUSH_PLT_PCREL swap 0x0 ++# OBJ-NEXT: 0x50 R_LARCH_SOP_POP_32_S_0_10_10_16_S2 - 0x0 ++# OBJ-NEXT: } ++# OBJ-NEXT: ] ++ ++# YAML: Relocations: ++# YAML-NEXT: - Offset: 0x40 ++# YAML-NEXT: Symbol: foo ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_PLT_PCREL ++# YAML-NEXT: - Offset: 0x40 ++# YAML-NEXT: Type: R_LARCH_SOP_POP_32_S_0_10_10_16_S2 ++# YAML-NEXT: - Offset: 0x44 ++# YAML-NEXT: Symbol: _GLOBAL_OFFSET_TABLE_ ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_PCREL ++# YAML-NEXT: Addend: 2048 ++# YAML-NEXT: - Offset: 0x44 ++# YAML-NEXT: Symbol: shared ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_GPREL ++# YAML-NEXT: - Offset: 0x44 ++# YAML-NEXT: Type: R_LARCH_SOP_ADD ++# YAML-NEXT: - Offset: 0x44 ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_ABSOLUTE ++# YAML-NEXT: Addend: 12 ++# YAML-NEXT: - Offset: 0x44 ++# YAML-NEXT: Type: R_LARCH_SOP_SR ++# YAML-NEXT: - Offset: 0x44 ++# YAML-NEXT: Type: R_LARCH_SOP_POP_32_S_5_20 ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Symbol: _GLOBAL_OFFSET_TABLE_ ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_PCREL ++# YAML-NEXT: Addend: 4 ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Symbol: shared ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_GPREL ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Type: R_LARCH_SOP_ADD ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Symbol: _GLOBAL_OFFSET_TABLE_ ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_PCREL ++# YAML-NEXT: Addend: 2052 ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Symbol: shared ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_GPREL ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Type: R_LARCH_SOP_ADD ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_ABSOLUTE ++# YAML-NEXT: Addend: 12 ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Type: R_LARCH_SOP_SR ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_ABSOLUTE ++# YAML-NEXT: Addend: 12 ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Type: R_LARCH_SOP_SL ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Type: R_LARCH_SOP_SUB ++# YAML-NEXT: - Offset: 0x48 ++# YAML-NEXT: Type: R_LARCH_SOP_POP_32_S_10_12 ++# YAML-NEXT: - Offset: 0x50 ++# YAML-NEXT: Symbol: swap ++# YAML-NEXT: Type: R_LARCH_SOP_PUSH_PLT_PCREL ++# YAML-NEXT: - Offset: 0x50 ++# YAML-NEXT: Type: R_LARCH_SOP_POP_32_S_0_10_10_16_S2 ++ ++--- !ELF ++FileHeader: ++ Class: ELFCLASS64 ++ Data: ELFDATA2LSB ++ Type: ET_REL ++ Machine: EM_LOONGARCH ++ Flags: [ EF_LARCH_ABI_LP64 ] ++Sections: ++ - Name: .text ++ Type: SHT_PROGBITS ++ Flags: [ SHF_ALLOC, SHF_EXECINSTR ] ++ AddressAlign: 0x10 ++ - Name: .rela.text ++ Type: SHT_RELA ++ Flags: [ SHF_INFO_LINK ] ++ AddressAlign: 0x8 ++ Info: .text ++ Relocations: ++ - Offset: 0x40 ++ Symbol: foo ++ Type: R_LARCH_SOP_PUSH_PLT_PCREL ++ - Offset: 0x40 ++ Type: R_LARCH_SOP_POP_32_S_0_10_10_16_S2 ++ - Offset: 0x44 ++ Symbol: _GLOBAL_OFFSET_TABLE_ ++ Type: R_LARCH_SOP_PUSH_PCREL ++ Addend: 2048 ++ - Offset: 0x44 ++ Symbol: shared ++ Type: R_LARCH_SOP_PUSH_GPREL ++ - Offset: 0x44 ++ Type: R_LARCH_SOP_ADD ++ - Offset: 0x44 ++ Type: R_LARCH_SOP_PUSH_ABSOLUTE ++ Addend: 12 ++ - Offset: 0x44 ++ Type: R_LARCH_SOP_SR ++ - Offset: 0x44 ++ Type: R_LARCH_SOP_POP_32_S_5_20 ++ - Offset: 0x48 ++ Symbol: _GLOBAL_OFFSET_TABLE_ ++ Type: R_LARCH_SOP_PUSH_PCREL ++ Addend: 4 ++ - Offset: 0x48 ++ Symbol: shared ++ Type: R_LARCH_SOP_PUSH_GPREL ++ - Offset: 0x48 ++ Type: R_LARCH_SOP_ADD ++ - Offset: 0x48 ++ Symbol: _GLOBAL_OFFSET_TABLE_ ++ Type: R_LARCH_SOP_PUSH_PCREL ++ Addend: 2052 ++ - Offset: 0x48 ++ Symbol: shared ++ Type: R_LARCH_SOP_PUSH_GPREL ++ - Offset: 0x48 ++ Type: R_LARCH_SOP_ADD ++ - Offset: 0x48 ++ Type: R_LARCH_SOP_PUSH_ABSOLUTE ++ Addend: 12 ++ - Offset: 0x48 ++ Type: R_LARCH_SOP_SR ++ - Offset: 0x48 ++ Type: R_LARCH_SOP_PUSH_ABSOLUTE ++ Addend: 12 ++ - Offset: 0x48 ++ Type: R_LARCH_SOP_SL ++ - Offset: 0x48 ++ Type: R_LARCH_SOP_SUB ++ - Offset: 0x48 ++ Type: R_LARCH_SOP_POP_32_S_10_12 ++ - Offset: 0x50 ++ Symbol: swap ++ Type: R_LARCH_SOP_PUSH_PLT_PCREL ++ - Offset: 0x50 ++ Type: R_LARCH_SOP_POP_32_S_0_10_10_16_S2 ++ - Name: .data ++ Type: SHT_PROGBITS ++ Flags: [ SHF_WRITE, SHF_ALLOC ] ++ AddressAlign: 0x10 ++ Content: '' ++ - Name: .bss ++ Type: SHT_NOBITS ++ Flags: [ SHF_WRITE, SHF_ALLOC ] ++ AddressAlign: 0x10 ++ ++Symbols: ++ - Name: a.c ++ Type: STT_FILE ++ - Name: _GLOBAL_OFFSET_TABLE_ ++ - Name: foo ++ Type: STT_FUNC ++ Section: .text ++ Size: 0x24 ++ - Name: main ++ Type: STT_FUNC ++ Section: .text ++ Value: 0x28 ++ Size: 0x4C ++ - Name: shared ++ - Name: swap ++... +diff --git a/llvm/test/Object/LoongArch/lit.local.cfg b/llvm/test/Object/LoongArch/lit.local.cfg +new file mode 100644 +index 000000000..2b5a4893e +--- /dev/null ++++ b/llvm/test/Object/LoongArch/lit.local.cfg +@@ -0,0 +1,2 @@ ++if not 'LoongArch' in config.root.targets: ++ config.unsupported = True +diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp +index ae2dec5d1..c0440abf5 100644 +--- a/llvm/tools/llvm-readobj/ELFDumper.cpp ++++ b/llvm/tools/llvm-readobj/ELFDumper.cpp +@@ -1648,6 +1648,12 @@ const EnumEntry ElfHeaderAVRFlags[] = { + ENUM_ENT(EF_AVR_LINKRELAX_PREPARED, "relaxable"), + }; + ++static const EnumEntry ElfHeaderLoongArchFlags[] = { ++ ENUM_ENT(EF_LARCH_ABI_LP64, "LP64") ++ // FIXME: Change these and add more flags in future 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 ++}; + + const EnumEntry ElfSymOtherFlags[] = { + LLVM_READOBJ_ENUM_ENT(ELF, STV_INTERNAL), +@@ -3357,6 +3363,8 @@ template void GNUELFDumper::printFileHeaders() { + else if (e.e_machine == EM_AVR) + ElfFlags = printFlags(e.e_flags, makeArrayRef(ElfHeaderAVRFlags), + unsigned(ELF::EF_AVR_ARCH_MASK)); ++ else if (e.e_machine == EM_LOONGARCH) ++ ElfFlags = printFlags(e.e_flags, makeArrayRef(ElfHeaderLoongArchFlags)); + Str = "0x" + utohexstr(e.e_flags); + if (!ElfFlags.empty()) + Str = Str + ", " + ElfFlags; +@@ -6507,6 +6515,8 @@ template void LLVMELFDumper::printFileHeaders() { + else if (E.e_machine == EM_AVR) + W.printFlags("Flags", E.e_flags, makeArrayRef(ElfHeaderAVRFlags), + unsigned(ELF::EF_AVR_ARCH_MASK)); ++ else if (E.e_machine == EM_LOONGARCH) ++ W.printFlags("Flags", E.e_flags, makeArrayRef(ElfHeaderLoongArchFlags)); + else + W.printFlags("Flags", E.e_flags); + W.printNumber("HeaderSize", E.e_ehsize); +diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/AsmParser/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/AsmParser/BUILD.gn +new file mode 100644 +index 000000000..cc3bb49a6 +--- /dev/null ++++ b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/AsmParser/BUILD.gn +@@ -0,0 +1,24 @@ ++import("//llvm/utils/TableGen/tablegen.gni") ++ ++tablegen("LoongArchGenAsmMatcher") { ++ visibility = [ ":AsmParser" ] ++ args = [ "-gen-asm-matcher" ] ++ td_file = "../LoongArch.td" ++} ++ ++static_library("AsmParser") { ++ output_name = "LLVMLoongArchAsmParser" ++ deps = [ ++ ":LoongArchGenAsmMatcher", ++ "//llvm/lib/MC", ++ "//llvm/lib/MC/MCParser", ++ "//llvm/lib/Support", ++ "//llvm/lib/Target/LoongArch/MCTargetDesc", ++ "//llvm/lib/Target/LoongArch/TargetInfo", ++ ] ++ include_dirs = [ ".." ] ++ sources = [ ++ # Make `gn format` not collapse this, for sync_source_lists_from_cmake.py. ++ "LoongArchAsmParser.cpp", ++ ] ++} +diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn +new file mode 100644 +index 000000000..e89db5200 +--- /dev/null ++++ b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn +@@ -0,0 +1,102 @@ ++import("//llvm/utils/TableGen/tablegen.gni") ++ ++tablegen("LoongArchGenCallingConv") { ++ visibility = [ ":LLVMLoongArchCodeGen" ] ++ args = [ "-gen-callingconv" ] ++ td_file = "LoongArch.td" ++} ++ ++tablegen("LoongArchGenDAGISel") { ++ visibility = [ ":LLVMLoongArchCodeGen" ] ++ args = [ "-gen-dag-isel" ] ++ td_file = "LoongArch.td" ++} ++ ++tablegen("LoongArchGenFastISel") { ++ visibility = [ ":LLVMLoongArchCodeGen" ] ++ args = [ "-gen-fast-isel" ] ++ td_file = "LoongArch.td" ++} ++ ++tablegen("LoongArchGenGlobalISel") { ++ visibility = [ ":LLVMLoongArchCodeGen" ] ++ args = [ "-gen-global-isel" ] ++ td_file = "LoongArch.td" ++} ++ ++tablegen("LoongArchGenMCPseudoLowering") { ++ visibility = [ ":LLVMLoongArchCodeGen" ] ++ args = [ "-gen-pseudo-lowering" ] ++ td_file = "LoongArch.td" ++} ++ ++tablegen("LoongArchGenRegisterBank") { ++ visibility = [ ":LLVMLoongArchCodeGen" ] ++ args = [ "-gen-register-bank" ] ++ td_file = "LoongArch.td" ++} ++ ++static_library("LLVMLoongArchCodeGen") { ++ deps = [ ++ ":LoongArchGenCallingConv", ++ ":LoongArchGenDAGISel", ++ ":LoongArchGenFastISel", ++ ":LoongArchGenGlobalISel", ++ ":LoongArchGenMCPseudoLowering", ++ ":LoongArchGenRegisterBank", ++ "MCTargetDesc", ++ "TargetInfo", ++ "//llvm/include/llvm/Config:llvm-config", ++ "//llvm/lib/Analysis", ++ "//llvm/lib/CodeGen", ++ "//llvm/lib/CodeGen/AsmPrinter", ++ "//llvm/lib/CodeGen/GlobalISel", ++ "//llvm/lib/CodeGen/SelectionDAG", ++ "//llvm/lib/IR", ++ "//llvm/lib/MC", ++ "//llvm/lib/Support", ++ "//llvm/lib/Target", ++ ] ++ include_dirs = [ "." ] ++ sources = [ ++ "LoongArchAnalyzeImmediate.cpp", ++ "LoongArchAsmPrinter.cpp", ++ "LoongArchCCState.cpp", ++ "LoongArchCallLowering.cpp", ++ "LoongArchConstantIslandPass.cpp", ++ "LoongArchDelaySlotFiller.cpp", ++ "LoongArchExpandPseudo.cpp", ++ "LoongArchFrameLowering.cpp", ++ "LoongArchISelDAGToDAG.cpp", ++ "LoongArchISelLowering.cpp", ++ "LoongArchInstrInfo.cpp", ++ "LoongArchInstructionSelector.cpp", ++ "LoongArchLegalizerInfo.cpp", ++ "LoongArchMCInstLower.cpp", ++ "LoongArchMachineFunction.cpp", ++ "LoongArchModuleISelDAGToDAG.cpp", ++ "LoongArchOptimizePICCall.cpp", ++ "LoongArchPreLegalizerCombiner.cpp", ++ "LoongArchRegisterBankInfo.cpp", ++ "LoongArchRegisterInfo.cpp", ++ "LoongArchSubtarget.cpp", ++ "LoongArchTargetMachine.cpp", ++ "LoongArchTargetObjectFile.cpp", ++ ] ++} ++ ++# This is a bit different from most build files: Due to this group ++# having the directory's name, "//llvm/lib/Target/LoongArch" will refer to this ++# target, which pulls in the code in this directory *and all subdirectories*. ++# For most other directories, "//llvm/lib/Foo" only pulls in the code directly ++# in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this ++# different behavior. ++group("LoongArch") { ++ deps = [ ++ ":LLVMLoongArchCodeGen", ++ "AsmParser", ++ "Disassembler", ++ "MCTargetDesc", ++ "TargetInfo", ++ ] ++} +diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/Disassembler/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/Disassembler/BUILD.gn +new file mode 100644 +index 000000000..0a9b4cf59 +--- /dev/null ++++ b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/Disassembler/BUILD.gn +@@ -0,0 +1,23 @@ ++import("//llvm/utils/TableGen/tablegen.gni") ++ ++tablegen("LoongArchGenDisassemblerTables") { ++ visibility = [ ":Disassembler" ] ++ args = [ "-gen-disassembler" ] ++ td_file = "../LoongArch.td" ++} ++ ++static_library("Disassembler") { ++ output_name = "LLVMLoongArchDisassembler" ++ deps = [ ++ ":LoongArchGenDisassemblerTables", ++ "//llvm/lib/MC/MCDisassembler", ++ "//llvm/lib/Support", ++ "//llvm/lib/Target/LoongArch/MCTargetDesc", ++ "//llvm/lib/Target/LoongArch/TargetInfo", ++ ] ++ include_dirs = [ ".." ] ++ sources = [ ++ # Make `gn format` not collapse this, for sync_source_lists_from_cmake.py. ++ "LoongArchDisassembler.cpp", ++ ] ++} +diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/MCTargetDesc/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/MCTargetDesc/BUILD.gn +new file mode 100644 +index 000000000..f0b96c965 +--- /dev/null ++++ b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/MCTargetDesc/BUILD.gn +@@ -0,0 +1,74 @@ ++import("//llvm/utils/TableGen/tablegen.gni") ++ ++tablegen("LoongArchGenAsmWriter") { ++ visibility = [ ":MCTargetDesc" ] ++ args = [ "-gen-asm-writer" ] ++ td_file = "../LoongArch.td" ++} ++ ++tablegen("LoongArchGenInstrInfo") { ++ visibility = [ ":tablegen" ] ++ args = [ "-gen-instr-info" ] ++ td_file = "../LoongArch.td" ++} ++ ++tablegen("LoongArchGenMCCodeEmitter") { ++ visibility = [ ":MCTargetDesc" ] ++ args = [ "-gen-emitter" ] ++ td_file = "../LoongArch.td" ++} ++ ++tablegen("LoongArchGenRegisterInfo") { ++ visibility = [ ":tablegen" ] ++ args = [ "-gen-register-info" ] ++ td_file = "../LoongArch.td" ++} ++ ++tablegen("LoongArchGenSubtargetInfo") { ++ visibility = [ ":tablegen" ] ++ args = [ "-gen-subtarget" ] ++ td_file = "../LoongArch.td" ++} ++ ++# This should contain tablegen targets generating .inc files included ++# by other targets. .inc files only used by .cpp files in this directory ++# should be in deps on the static_library instead. ++group("tablegen") { ++ visibility = [ ++ ":MCTargetDesc", ++ "../TargetInfo", ++ ] ++ public_deps = [ ++ ":LoongArchGenInstrInfo", ++ ":LoongArchGenRegisterInfo", ++ ":LoongArchGenSubtargetInfo", ++ ] ++} ++ ++static_library("MCTargetDesc") { ++ output_name = "LLVMLoongArchDesc" ++ public_deps = [ ":tablegen" ] ++ deps = [ ++ ":LoongArchGenAsmWriter", ++ ":LoongArchGenMCCodeEmitter", ++ "//llvm/lib/MC", ++ "//llvm/lib/Support", ++ "//llvm/lib/Target/LoongArch/TargetInfo", ++ ] ++ include_dirs = [ ".." ] ++ sources = [ ++ "LoongArchABIFlagsSection.cpp", ++ "LoongArchABIInfo.cpp", ++ "LoongArchAsmBackend.cpp", ++ "LoongArchELFObjectWriter.cpp", ++ "LoongArchELFStreamer.cpp", ++ "LoongArchInstPrinter.cpp", ++ "LoongArchMCAsmInfo.cpp", ++ "LoongArchMCCodeEmitter.cpp", ++ "LoongArchMCExpr.cpp", ++ "LoongArchMCTargetDesc.cpp", ++ "LoongArchNaClELFStreamer.cpp", ++ "LoongArchOptionRecord.cpp", ++ "LoongArchTargetStreamer.cpp", ++ ] ++} +diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/TargetInfo/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/TargetInfo/BUILD.gn +new file mode 100644 +index 000000000..a476bdd5f +--- /dev/null ++++ b/llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/TargetInfo/BUILD.gn +@@ -0,0 +1,9 @@ ++static_library("TargetInfo") { ++ output_name = "LLVMLoongArchInfo" ++ deps = [ "//llvm/lib/Support" ] ++ include_dirs = [ ".." ] ++ sources = [ ++ # Make `gn format` not collapse this, for sync_source_lists_from_cmake.py. ++ "LoongArchTargetInfo.cpp", ++ ] ++} diff --git a/llvm.spec b/llvm.spec index b3ec9b1197961137732b9aa69338baa09784f9e4..6aff472df5ba2c9cb50d831c12e84c9067c3f8ff 100644 --- a/llvm.spec +++ b/llvm.spec @@ -1,4 +1,4 @@ -%define anolis_release .0.2 +%define anolis_release .0.3 # We are building with clang for faster/lower memory LTO builds. # See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_macros %global toolchain clang @@ -110,6 +110,7 @@ Source6: lit.fedora.cfg.py Patch2: 0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch Patch3: 0001-Support-LoongArch.patch +Patch4: 0002-Add-LoongArch-Support-for-ObjectYAML.patch # RHEL-specific patches. Patch101: 0001-Deactivate-markdown-doc.patch @@ -601,7 +602,11 @@ fi %endif %changelog -* Fri Jul 07 2023 Loongson - 15.0.7-1.0.2 +* Thu Aug 17 2023 Chen Li - 15.0.7-1.0.3 +- backport: [SelectionDAG] Do not salvage with vector node +- [LoongArch] Add support for ObjectYAML + +* Fri Jul 07 2023 Chen Li - 15.0.7-1.0.2 - Support LoongArch * Fri Jun 30 2023 Liwei Ge - 15.0.7-1.0.1