brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.5 KiB · b0cc948 Raw
181 lines · plain
1 2// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-mop4,+sme-f64f64 < %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,+sme-f64f64 < %s \7// RUN:        | llvm-objdump -d --mattr=+sme-mop4,+sme-f64f64 - | FileCheck %s --check-prefix=CHECK-INST8// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme-mop4,+sme-f64f64 < %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,+sme-f64f64 < %s \12// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \13// RUN:        | llvm-mc -triple=aarch64 -mattr=+sme-mop4,+sme-f64f64 -disassemble -show-encoding \14// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST15 16 17// FMOP4A18 19// Single vectors20 21fmop4a  za0.d, z0.d, z16.d  // 10000000-11000000-00000000-0000100022// CHECK-INST: fmop4a  za0.d, z0.d, z16.d23// CHECK-ENCODING: [0x08,0x00,0xc0,0x80]24// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop425// CHECK-UNKNOWN: 80c00008 <unknown>26 27fmop4a  za5.d, z10.d, z20.d  // 10000000-11000100-00000001-0100110128// CHECK-INST: fmop4a  za5.d, z10.d, z20.d29// CHECK-ENCODING: [0x4d,0x01,0xc4,0x80]30// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop431// CHECK-UNKNOWN: 80c4014d <unknown>32 33fmop4a  za7.d, z14.d, z30.d  // 10000000-11001110-00000001-1100111134// CHECK-INST: fmop4a  za7.d, z14.d, z30.d35// CHECK-ENCODING: [0xcf,0x01,0xce,0x80]36// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop437// CHECK-UNKNOWN: 80ce01cf <unknown>38 39// Single and multiple vectors40 41fmop4a  za0.d, z0.d, {z16.d-z17.d}  // 10000000-11010000-00000000-0000100042// CHECK-INST: fmop4a  za0.d, z0.d, { z16.d, z17.d }43// CHECK-ENCODING: [0x08,0x00,0xd0,0x80]44// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop445// CHECK-UNKNOWN: 80d00008 <unknown>46 47fmop4a  za5.d, z10.d, {z20.d-z21.d}  // 10000000-11010100-00000001-0100110148// CHECK-INST: fmop4a  za5.d, z10.d, { z20.d, z21.d }49// CHECK-ENCODING: [0x4d,0x01,0xd4,0x80]50// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop451// CHECK-UNKNOWN: 80d4014d <unknown>52 53fmop4a  za7.d, z14.d, {z30.d-z31.d}  // 10000000-11011110-00000001-1100111154// CHECK-INST: fmop4a  za7.d, z14.d, { z30.d, z31.d }55// CHECK-ENCODING: [0xcf,0x01,0xde,0x80]56// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop457// CHECK-UNKNOWN: 80de01cf <unknown>58 59// Multiple and single vectors60 61fmop4a  za0.d, {z0.d-z1.d}, z16.d  // 10000000-11000000-00000010-0000100062// CHECK-INST: fmop4a  za0.d, { z0.d, z1.d }, z16.d63// CHECK-ENCODING: [0x08,0x02,0xc0,0x80]64// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop465// CHECK-UNKNOWN: 80c00208 <unknown>66 67fmop4a  za5.d, {z10.d-z11.d}, z20.d  // 10000000-11000100-00000011-0100110168// CHECK-INST: fmop4a  za5.d, { z10.d, z11.d }, z20.d69// CHECK-ENCODING: [0x4d,0x03,0xc4,0x80]70// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop471// CHECK-UNKNOWN: 80c4034d <unknown>72 73fmop4a  za7.d, {z14.d-z15.d}, z30.d  // 10000000-11001110-00000011-1100111174// CHECK-INST: fmop4a  za7.d, { z14.d, z15.d }, z30.d75// CHECK-ENCODING: [0xcf,0x03,0xce,0x80]76// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop477// CHECK-UNKNOWN: 80ce03cf <unknown>78 79// Multiple vectors80 81fmop4a  za0.d, {z0.d-z1.d}, {z16.d-z17.d}  // 10000000-11010000-00000010-0000100082// CHECK-INST: fmop4a  za0.d, { z0.d, z1.d }, { z16.d, z17.d }83// CHECK-ENCODING: [0x08,0x02,0xd0,0x80]84// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop485// CHECK-UNKNOWN: 80d00208 <unknown>86 87fmop4a  za5.d, {z10.d-z11.d}, {z20.d-z21.d}  // 10000000-11010100-00000011-0100110188// CHECK-INST: fmop4a  za5.d, { z10.d, z11.d }, { z20.d, z21.d }89// CHECK-ENCODING: [0x4d,0x03,0xd4,0x80]90// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop491// CHECK-UNKNOWN: 80d4034d <unknown>92 93fmop4a  za7.d, {z14.d-z15.d}, {z30.d-z31.d}  // 10000000-11011110-00000011-1100111194// CHECK-INST: fmop4a  za7.d, { z14.d, z15.d }, { z30.d, z31.d }95// CHECK-ENCODING: [0xcf,0x03,0xde,0x80]96// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop497// CHECK-UNKNOWN: 80de03cf <unknown>98 99 100// FMOP4S101 102// Single vectors103 104fmop4s  za0.d, z0.d, z16.d  // 10000000-11000000-00000000-00011000105// CHECK-INST: fmop4s  za0.d, z0.d, z16.d106// CHECK-ENCODING: [0x18,0x00,0xc0,0x80]107// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4108// CHECK-UNKNOWN: 80c00018 <unknown>109 110fmop4s  za5.d, z10.d, z20.d  // 10000000-11000100-00000001-01011101111// CHECK-INST: fmop4s  za5.d, z10.d, z20.d112// CHECK-ENCODING: [0x5d,0x01,0xc4,0x80]113// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4114// CHECK-UNKNOWN: 80c4015d <unknown>115 116fmop4s  za7.d, z14.d, z30.d  // 10000000-11001110-00000001-11011111117// CHECK-INST: fmop4s  za7.d, z14.d, z30.d118// CHECK-ENCODING: [0xdf,0x01,0xce,0x80]119// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4120// CHECK-UNKNOWN: 80ce01df <unknown>121 122// Single and multiple vectors123 124fmop4s  za0.d, z0.d, {z16.d-z17.d}  // 10000000-11010000-00000000-00011000125// CHECK-INST: fmop4s  za0.d, z0.d, { z16.d, z17.d }126// CHECK-ENCODING: [0x18,0x00,0xd0,0x80]127// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4128// CHECK-UNKNOWN: 80d00018 <unknown>129 130fmop4s  za5.d, z10.d, {z20.d-z21.d}  // 10000000-11010100-00000001-01011101131// CHECK-INST: fmop4s  za5.d, z10.d, { z20.d, z21.d }132// CHECK-ENCODING: [0x5d,0x01,0xd4,0x80]133// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4134// CHECK-UNKNOWN: 80d4015d <unknown>135 136fmop4s  za7.d, z14.d, {z30.d-z31.d}  // 10000000-11011110-00000001-11011111137// CHECK-INST: fmop4s  za7.d, z14.d, { z30.d, z31.d }138// CHECK-ENCODING: [0xdf,0x01,0xde,0x80]139// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4140// CHECK-UNKNOWN: 80de01df <unknown>141 142// Multiple and single vectors143 144fmop4s  za0.d, {z0.d-z1.d}, z16.d  // 10000000-11000000-00000010-00011000145// CHECK-INST: fmop4s  za0.d, { z0.d, z1.d }, z16.d146// CHECK-ENCODING: [0x18,0x02,0xc0,0x80]147// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4148// CHECK-UNKNOWN: 80c00218 <unknown>149 150fmop4s  za5.d, {z10.d-z11.d}, z20.d  // 10000000-11000100-00000011-01011101151// CHECK-INST: fmop4s  za5.d, { z10.d, z11.d }, z20.d152// CHECK-ENCODING: [0x5d,0x03,0xc4,0x80]153// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4154// CHECK-UNKNOWN: 80c4035d <unknown>155 156fmop4s  za7.d, {z14.d-z15.d}, z30.d  // 10000000-11001110-00000011-11011111157// CHECK-INST: fmop4s  za7.d, { z14.d, z15.d }, z30.d158// CHECK-ENCODING: [0xdf,0x03,0xce,0x80]159// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4160// CHECK-UNKNOWN: 80ce03df <unknown>161 162// Multiple vectors163 164fmop4s  za0.d, {z0.d-z1.d}, {z16.d-z17.d}  // 10000000-11010000-00000010-00011000165// CHECK-INST: fmop4s  za0.d, { z0.d, z1.d }, { z16.d, z17.d }166// CHECK-ENCODING: [0x18,0x02,0xd0,0x80]167// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4168// CHECK-UNKNOWN: 80d00218 <unknown>169 170fmop4s  za5.d, {z10.d-z11.d}, {z20.d-z21.d}  // 10000000-11010100-00000011-01011101171// CHECK-INST: fmop4s  za5.d, { z10.d, z11.d }, { z20.d, z21.d }172// CHECK-ENCODING: [0x5d,0x03,0xd4,0x80]173// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4174// CHECK-UNKNOWN: 80d4035d <unknown>175 176fmop4s  za7.d, {z14.d-z15.d}, {z30.d-z31.d}  // 10000000-11011110-00000011-11011111177// CHECK-INST: fmop4s  za7.d, { z14.d, z15.d }, { z30.d, z31.d }178// CHECK-ENCODING: [0xdf,0x03,0xde,0x80]179// CHECK-ERROR: instruction requires: sme-f64f64 sme-mop4180// CHECK-UNKNOWN: 80de03df <unknown>181