brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.1 KiB · e20982a Raw
180 lines · plain
1 2// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-mop4 < %s \3// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST4// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \5// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR6// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme-mop4 < %s \7// RUN:        | llvm-objdump -d --mattr=+sme-mop4 - | FileCheck %s --check-prefix=CHECK-INST8// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme-mop4 < %s \9// RUN:        | llvm-objdump -d --mattr=-sme-mop4 - | FileCheck %s --check-prefix=CHECK-UNKNOWN10// Disassemble encoding and check the re-encoding (-show-encoding) matches.11// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-mop4 < %s \12// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \13// RUN:        | llvm-mc -triple=aarch64 -mattr=+sme-mop4 -disassemble -show-encoding \14// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST15 16 17// FMOP4A18 19// Single vectors20 21fmop4a  za0.s, z0.s, z16.s  // 10000000-00000000-00000000-0000000022// CHECK-INST: fmop4a  za0.s, z0.s, z16.s23// CHECK-ENCODING: [0x00,0x00,0x00,0x80]24// CHECK-ERROR: instruction requires: sme-mop425// CHECK-UNKNOWN: 80000000 <unknown>26 27fmop4a  za3.s, z12.s, z24.s  // 10000000-00001000-00000001-1000001128// CHECK-INST: fmop4a  za3.s, z12.s, z24.s29// CHECK-ENCODING: [0x83,0x01,0x08,0x80]30// CHECK-ERROR: instruction requires: sme-mop431// CHECK-UNKNOWN: 80080183 <unknown>32 33fmop4a  za3.s, z14.s, z30.s  // 10000000-00001110-00000001-1100001134// CHECK-INST: fmop4a  za3.s, z14.s, z30.s35// CHECK-ENCODING: [0xc3,0x01,0x0e,0x80]36// CHECK-ERROR: instruction requires: sme-mop437// CHECK-UNKNOWN: 800e01c3 <unknown>38 39// Single and multiple vectors40 41fmop4a  za0.s, z0.s, {z16.s-z17.s}  // 10000000-00010000-00000000-0000000042// CHECK-INST: fmop4a  za0.s, z0.s, { z16.s, z17.s }43// CHECK-ENCODING: [0x00,0x00,0x10,0x80]44// CHECK-ERROR: instruction requires: sme-mop445// CHECK-UNKNOWN: 80100000 <unknown>46 47fmop4a  za1.s, z10.s, {z20.s-z21.s}  // 10000000-00010100-00000001-0100000148// CHECK-INST: fmop4a  za1.s, z10.s, { z20.s, z21.s }49// CHECK-ENCODING: [0x41,0x01,0x14,0x80]50// CHECK-ERROR: instruction requires: sme-mop451// CHECK-UNKNOWN: 80140141 <unknown>52 53fmop4a  za3.s, z14.s, {z30.s-z31.s}  // 10000000-00011110-00000001-1100001154// CHECK-INST: fmop4a  za3.s, z14.s, { z30.s, z31.s }55// CHECK-ENCODING: [0xc3,0x01,0x1e,0x80]56// CHECK-ERROR: instruction requires: sme-mop457// CHECK-UNKNOWN: 801e01c3 <unknown>58 59// Multiple and single vectors60 61fmop4a  za0.s, {z0.s-z1.s}, z16.s  // 10000000-00000000-00000010-0000000062// CHECK-INST: fmop4a  za0.s, { z0.s, z1.s }, z16.s63// CHECK-ENCODING: [0x00,0x02,0x00,0x80]64// CHECK-ERROR: instruction requires: sme-mop465// CHECK-UNKNOWN: 80000200 <unknown>66 67fmop4a  za1.s, {z10.s-z11.s}, z20.s  // 10000000-00000100-00000011-0100000168// CHECK-INST: fmop4a  za1.s, { z10.s, z11.s }, z20.s69// CHECK-ENCODING: [0x41,0x03,0x04,0x80]70// CHECK-ERROR: instruction requires: sme-mop471// CHECK-UNKNOWN: 80040341 <unknown>72 73fmop4a  za3.s, {z14.s-z15.s}, z30.s  // 10000000-00001110-00000011-1100001174// CHECK-INST: fmop4a  za3.s, { z14.s, z15.s }, z30.s75// CHECK-ENCODING: [0xc3,0x03,0x0e,0x80]76// CHECK-ERROR: instruction requires: sme-mop477// CHECK-UNKNOWN: 800e03c3 <unknown>78 79// Multiple vectors80 81fmop4a  za0.s, {z0.s-z1.s}, {z16.s-z17.s}  // 10000000-00010000-00000010-0000000082// CHECK-INST: fmop4a  za0.s, { z0.s, z1.s }, { z16.s, z17.s }83// CHECK-ENCODING: [0x00,0x02,0x10,0x80]84// CHECK-ERROR: instruction requires: sme-mop485// CHECK-UNKNOWN: 80100200 <unknown>86 87fmop4a  za1.s, {z10.s-z11.s}, {z20.s-z21.s}  // 10000000-00010100-00000011-0100000188// CHECK-INST: fmop4a  za1.s, { z10.s, z11.s }, { z20.s, z21.s }89// CHECK-ENCODING: [0x41,0x03,0x14,0x80]90// CHECK-ERROR: instruction requires: sme-mop491// CHECK-UNKNOWN: 80140341 <unknown>92 93fmop4a  za3.s, {z14.s-z15.s}, {z30.s-z31.s}  // 10000000-00011110-00000011-1100001194// CHECK-INST: fmop4a  za3.s, { z14.s, z15.s }, { z30.s, z31.s }95// CHECK-ENCODING: [0xc3,0x03,0x1e,0x80]96// CHECK-ERROR: instruction requires: sme-mop497// CHECK-UNKNOWN: 801e03c3 <unknown>98 99// FMOP4S100 101// Single vectors102 103fmop4s  za0.s, z0.s, z16.s  // 10000000-00000000-00000000-00010000104// CHECK-INST: fmop4s  za0.s, z0.s, z16.s105// CHECK-ENCODING: [0x10,0x00,0x00,0x80]106// CHECK-ERROR: instruction requires: sme-mop4107// CHECK-UNKNOWN: 80000010 <unknown>108 109fmop4s  za3.s, z12.s, z24.s  // 10000000-00001000-00000001-10010011110// CHECK-INST: fmop4s  za3.s, z12.s, z24.s111// CHECK-ENCODING: [0x93,0x01,0x08,0x80]112// CHECK-ERROR: instruction requires: sme-mop4113// CHECK-UNKNOWN: 80080193 <unknown>114 115fmop4s  za3.s, z14.s, z30.s  // 10000000-00001110-00000001-11010011116// CHECK-INST: fmop4s  za3.s, z14.s, z30.s117// CHECK-ENCODING: [0xd3,0x01,0x0e,0x80]118// CHECK-ERROR: instruction requires: sme-mop4119// CHECK-UNKNOWN: 800e01d3 <unknown>120 121// Single and multiple vectors122 123fmop4s  za0.s, z0.s, {z16.s-z17.s}  // 10000000-00010000-00000000-00010000124// CHECK-INST: fmop4s  za0.s, z0.s, { z16.s, z17.s }125// CHECK-ENCODING: [0x10,0x00,0x10,0x80]126// CHECK-ERROR: instruction requires: sme-mop4127// CHECK-UNKNOWN: 80100010 <unknown>128 129fmop4s  za1.s, z10.s, {z20.s-z21.s}  // 10000000-00010100-00000001-01010001130// CHECK-INST: fmop4s  za1.s, z10.s, { z20.s, z21.s }131// CHECK-ENCODING: [0x51,0x01,0x14,0x80]132// CHECK-ERROR: instruction requires: sme-mop4133// CHECK-UNKNOWN: 80140151 <unknown>134 135fmop4s  za3.s, z14.s, {z30.s-z31.s}  // 10000000-00011110-00000001-11010011136// CHECK-INST: fmop4s  za3.s, z14.s, { z30.s, z31.s }137// CHECK-ENCODING: [0xd3,0x01,0x1e,0x80]138// CHECK-ERROR: instruction requires: sme-mop4139// CHECK-UNKNOWN: 801e01d3 <unknown>140 141// Multiple and single vectors142 143fmop4s  za0.s, {z0.s-z1.s}, z16.s  // 10000000-00000000-00000010-00010000144// CHECK-INST: fmop4s  za0.s, { z0.s, z1.s }, z16.s145// CHECK-ENCODING: [0x10,0x02,0x00,0x80]146// CHECK-ERROR: instruction requires: sme-mop4147// CHECK-UNKNOWN: 80000210 <unknown>148 149fmop4s  za1.s, {z10.s-z11.s}, z20.s  // 10000000-00000100-00000011-01010001150// CHECK-INST: fmop4s  za1.s, { z10.s, z11.s }, z20.s151// CHECK-ENCODING: [0x51,0x03,0x04,0x80]152// CHECK-ERROR: instruction requires: sme-mop4153// CHECK-UNKNOWN: 80040351 <unknown>154 155fmop4s  za3.s, {z14.s-z15.s}, z30.s  // 10000000-00001110-00000011-11010011156// CHECK-INST: fmop4s  za3.s, { z14.s, z15.s }, z30.s157// CHECK-ENCODING: [0xd3,0x03,0x0e,0x80]158// CHECK-ERROR: instruction requires: sme-mop4159// CHECK-UNKNOWN: 800e03d3 <unknown>160 161// Multiple vectors162 163fmop4s  za0.s, {z0.s-z1.s}, {z16.s-z17.s}  // 10000000-00010000-00000010-00010000164// CHECK-INST: fmop4s  za0.s, { z0.s, z1.s }, { z16.s, z17.s }165// CHECK-ENCODING: [0x10,0x02,0x10,0x80]166// CHECK-ERROR: instruction requires: sme-mop4167// CHECK-UNKNOWN: 80100210 <unknown>168 169fmop4s  za1.s, {z10.s-z11.s}, {z20.s-z21.s}  // 10000000-00010100-00000011-01010001170// CHECK-INST: fmop4s  za1.s, { z10.s, z11.s }, { z20.s, z21.s }171// CHECK-ENCODING: [0x51,0x03,0x14,0x80]172// CHECK-ERROR: instruction requires: sme-mop4173// CHECK-UNKNOWN: 80140351 <unknown>174 175fmop4s  za3.s, {z14.s-z15.s}, {z30.s-z31.s}  // 10000000-00011110-00000011-11010011176// CHECK-INST: fmop4s  za3.s, { z14.s, z15.s }, { z30.s, z31.s }177// CHECK-ENCODING: [0xd3,0x03,0x1e,0x80]178// CHECK-ERROR: instruction requires: sme-mop4179// CHECK-UNKNOWN: 801e03d3 <unknown>180