brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.9 KiB · 12df18d Raw
276 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 < %s \2// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST3// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p3 < %s \4// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST5// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \6// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2p3 < %s \8// RUN:        | llvm-objdump -d --mattr=+sve2p3 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST9// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2p3 < %s \10// RUN:        | llvm-objdump -d --mattr=-sve2p3 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN11// Disassemble encoding and check the re-encoding (-show-encoding) matches.12// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 < %s \13// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \14// RUN:        | llvm-mc -triple=aarch64 -mattr=+sve2p3 -disassemble -show-encoding \15// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST16 17addqp z0.b, z0.b, z0.b18// CHECK-INST: addqp z0.b, z0.b, z0.b19// CHECK-ENCODING: encoding: [0x00,0x78,0x20,0x04]20// CHECK-ERROR: instruction requires: sme2p3 or sve2p321// CHECK-UNKNOWN: 04207800 <unknown>22 23addqp z31.b, z31.b, z31.b24// CHECK-INST: addqp z31.b, z31.b, z31.b25// CHECK-ENCODING: encoding: [0xff,0x7b,0x3f,0x04]26// CHECK-ERROR: instruction requires: sme2p3 or sve2p327// CHECK-UNKNOWN: 043f7bff <unknown>28 29addqp z0.h, z0.h, z0.h30// CHECK-INST: addqp z0.h, z0.h, z0.h31// CHECK-ENCODING: encoding: [0x00,0x78,0x60,0x04]32// CHECK-ERROR: instruction requires: sme2p3 or sve2p333// CHECK-UNKNOWN: 04607800 <unknown>34 35addqp z31.h, z31.h, z31.h36// CHECK-INST: addqp z31.h, z31.h, z31.h37// CHECK-ENCODING: encoding: [0xff,0x7b,0x7f,0x04]38// CHECK-ERROR: instruction requires: sme2p3 or sve2p339// CHECK-UNKNOWN: 047f7bff <unknown>40 41addqp z0.s, z0.s, z0.s42// CHECK-INST: addqp z0.s, z0.s, z0.s43// CHECK-ENCODING: encoding: [0x00,0x78,0xa0,0x04]44// CHECK-ERROR: instruction requires: sme2p3 or sve2p345// CHECK-UNKNOWN: 04a07800 <unknown>46 47addqp z31.s, z31.s, z31.s48// CHECK-INST: addqp z31.s, z31.s, z31.s49// CHECK-ENCODING: encoding: [0xff,0x7b,0xbf,0x04]50// CHECK-ERROR: instruction requires: sme2p3 or sve2p351// CHECK-UNKNOWN: 04bf7bff <unknown>52 53addqp z0.d, z0.d, z0.d54// CHECK-INST: addqp z0.d, z0.d, z0.d55// CHECK-ENCODING: encoding: [0x00,0x78,0xe0,0x04]56// CHECK-ERROR: instruction requires: sme2p3 or sve2p357// CHECK-UNKNOWN: 04e07800 <unknown>58 59addqp z31.d, z31.d, z31.d60// CHECK-INST: addqp z31.d, z31.d, z31.d61// CHECK-ENCODING: encoding: [0xff,0x7b,0xff,0x04]62// CHECK-ERROR: instruction requires: sme2p3 or sve2p363// CHECK-UNKNOWN: 04ff7bff <unknown>64 65// --------------------------------------------------------------------------//66// Test addsubp67 68addsubp z0.b, z0.b, z0.b69// CHECK-INST: addsubp z0.b, z0.b, z0.b70// CHECK-ENCODING: encoding: [0x00,0x7c,0x20,0x04]71// CHECK-ERROR: instruction requires: sme2p3 or sve2p372// CHECK-UNKNOWN: 04207c00 <unknown>73 74addsubp z31.b, z31.b, z31.b75// CHECK-INST: addsubp z31.b, z31.b, z31.b76// CHECK-ENCODING: encoding: [0xff,0x7f,0x3f,0x04]77// CHECK-ERROR: instruction requires: sme2p3 or sve2p378// CHECK-UNKNOWN: 043f7fff <unknown>79 80addsubp z0.h, z0.h, z0.h81// CHECK-INST: addsubp z0.h, z0.h, z0.h82// CHECK-ENCODING: encoding: [0x00,0x7c,0x60,0x04]83// CHECK-ERROR: instruction requires: sme2p3 or sve2p384// CHECK-UNKNOWN: 04607c00 <unknown>85 86addsubp z31.h, z31.h, z31.h87// CHECK-INST: addsubp z31.h, z31.h, z31.h88// CHECK-ENCODING: encoding: [0xff,0x7f,0x7f,0x04]89// CHECK-ERROR: instruction requires: sme2p3 or sve2p390// CHECK-UNKNOWN: 047f7fff <unknown>91 92addsubp z0.s, z0.s, z0.s93// CHECK-INST: addsubp z0.s, z0.s, z0.s94// CHECK-ENCODING: encoding: [0x00,0x7c,0xa0,0x04]95// CHECK-ERROR: instruction requires: sme2p3 or sve2p396// CHECK-UNKNOWN: 04a07c00 <unknown>97 98addsubp z31.s, z31.s, z31.s99// CHECK-INST: addsubp z31.s, z31.s, z31.s100// CHECK-ENCODING: encoding: [0xff,0x7f,0xbf,0x04]101// CHECK-ERROR: instruction requires: sme2p3 or sve2p3102// CHECK-UNKNOWN: 04bf7fff <unknown>103 104addsubp z0.d, z0.d, z0.d105// CHECK-INST: addsubp z0.d, z0.d, z0.d106// CHECK-ENCODING: encoding: [0x00,0x7c,0xe0,0x04]107// CHECK-ERROR: instruction requires: sme2p3 or sve2p3108// CHECK-UNKNOWN: 04e07c00 <unknown>109 110addsubp z31.d, z31.d, z31.d111// CHECK-INST: addsubp z31.d, z31.d, z31.d112// CHECK-ENCODING: encoding: [0xff,0x7f,0xff,0x04]113// CHECK-ERROR: instruction requires: sme2p3 or sve2p3114// CHECK-UNKNOWN: 04ff7fff <unknown>115 116// --------------------------------------------------------------------------//117// Test sabal118 119sabal z0.h, z0.b, z0.b120// CHECK-INST: sabal z0.h, z0.b, z0.b121// CHECK-ENCODING: encoding: [0x00,0xd4,0x40,0x44]122// CHECK-ERROR: instruction requires: sme2p3 or sve2p3123// CHECK-UNKNOWN: 4440d400 <unknown>124 125sabal z31.h, z31.b, z31.b126// CHECK-INST: sabal z31.h, z31.b, z31.b127// CHECK-ENCODING: encoding: [0xff,0xd7,0x5f,0x44]128// CHECK-ERROR: instruction requires: sme2p3 or sve2p3129// CHECK-UNKNOWN: 445fd7ff <unknown>130 131sabal z0.s, z0.h, z0.h132// CHECK-INST: sabal z0.s, z0.h, z0.h133// CHECK-ENCODING: encoding: [0x00,0xd4,0x80,0x44]134// CHECK-ERROR: instruction requires: sme2p3 or sve2p3135// CHECK-UNKNOWN: 4480d400 <unknown>136 137sabal z31.s, z31.h, z31.h138// CHECK-INST: sabal z31.s, z31.h, z31.h139// CHECK-ENCODING: encoding: [0xff,0xd7,0x9f,0x44]140// CHECK-ERROR: instruction requires: sme2p3 or sve2p3141// CHECK-UNKNOWN: 449fd7ff <unknown>142 143sabal z0.d, z0.s, z0.s144// CHECK-INST: sabal z0.d, z0.s, z0.s145// CHECK-ENCODING: encoding: [0x00,0xd4,0xc0,0x44]146// CHECK-ERROR: instruction requires: sme2p3 or sve2p3147// CHECK-UNKNOWN: 44c0d400 <unknown>148 149sabal z31.d, z31.s, z31.s150// CHECK-INST: sabal z31.d, z31.s, z31.s151// CHECK-ENCODING: encoding: [0xff,0xd7,0xdf,0x44]152// CHECK-ERROR: instruction requires: sme2p3 or sve2p3153// CHECK-UNKNOWN: 44dfd7ff <unknown>154 155movprfx z0, z7156sabal	z0.h, z1.b, z2.b157// CHECK-INST: movprfx z0, z7158// CHECK-INST: sabal z0.h, z1.b, z2.b159// CHECK-ENCODING: encoding: [0x20,0xd4,0x42,0x44]160// CHECK-ERROR: instruction requires: sme2p3 or sve2p3161// CHECK-UNKNOWN: 4442d420 <unknown>162 163// --------------------------------------------------------------------------//164// Test uabal165 166uabal z0.h, z0.b, z0.b167// CHECK-INST: uabal z0.h, z0.b, z0.b168// CHECK-ENCODING: encoding: [0x00,0xdc,0x40,0x44]169// CHECK-ERROR: instruction requires: sme2p3 or sve2p3170// CHECK-UNKNOWN: 4440dc00 <unknown>171 172uabal z31.h, z31.b, z31.b173// CHECK-INST: uabal z31.h, z31.b, z31.b174// CHECK-ENCODING: encoding: [0xff,0xdf,0x5f,0x44]175// CHECK-ERROR: instruction requires: sme2p3 or sve2p3176// CHECK-UNKNOWN: 445fdfff <unknown>177 178uabal z0.s, z0.h, z0.h179// CHECK-INST: uabal z0.s, z0.h, z0.h180// CHECK-ENCODING: encoding: [0x00,0xdc,0x80,0x44]181// CHECK-ERROR: instruction requires: sme2p3 or sve2p3182// CHECK-UNKNOWN: 4480dc00 <unknown>183 184uabal z31.s, z31.h, z31.h185// CHECK-INST: uabal z31.s, z31.h, z31.h186// CHECK-ENCODING: encoding: [0xff,0xdf,0x9f,0x44]187// CHECK-ERROR: instruction requires: sme2p3 or sve2p3188// CHECK-UNKNOWN: 449fdfff <unknown>189 190uabal z0.d, z0.s, z0.s191// CHECK-INST: uabal z0.d, z0.s, z0.s192// CHECK-ENCODING: encoding: [0x00,0xdc,0xc0,0x44]193// CHECK-ERROR: instruction requires: sme2p3 or sve2p3194// CHECK-UNKNOWN: 44c0dc00 <unknown>195 196uabal z31.d, z31.s, z31.s197// CHECK-INST: uabal z31.d, z31.s, z31.s198// CHECK-ENCODING: encoding: [0xff,0xdf,0xdf,0x44]199// CHECK-ERROR: instruction requires: sme2p3 or sve2p3200// CHECK-UNKNOWN: 44dfdfff <unknown>201 202movprfx z0, z7203uabal	z0.h, z1.b, z2.b204// CHECK-INST: movprfx z0, z7205// CHECK-INST: uabal z0.h, z1.b, z2.b206// CHECK-ENCODING: encoding: [0x20,0xdc,0x42,0x44]207// CHECK-ERROR: instruction requires: sme2p3 or sve2p3208// CHECK-UNKNOWN: 4442dc20 <unknown>209 210// --------------------------------------------------------------------------//211// Test subp212 213subp z0.b, p0/m, z0.b, z0.b214// CHECK-INST: subp z0.b, p0/m, z0.b, z0.b215// CHECK-ENCODING: encoding: [0x00,0xa0,0x10,0x44]216// CHECK-ERROR: instruction requires: sme2p3 or sve2p3217// CHECK-UNKNOWN: 4410a000 <unknown>218 219subp z31.b, p7/m, z31.b, z31.b220// CHECK-INST: subp z31.b, p7/m, z31.b, z31.b221// CHECK-ENCODING: encoding: [0xff,0xbf,0x10,0x44]222// CHECK-ERROR: instruction requires: sme2p3 or sve2p3223// CHECK-UNKNOWN: 4410bfff <unknown>224 225subp z0.h, p0/m, z0.h, z0.h226// CHECK-INST: subp z0.h, p0/m, z0.h, z0.h227// CHECK-ENCODING: encoding: [0x00,0xa0,0x50,0x44]228// CHECK-ERROR: instruction requires: sme2p3 or sve2p3229// CHECK-UNKNOWN: 4450a000 <unknown>230 231subp z31.h, p7/m, z31.h, z31.h232// CHECK-INST: subp z31.h, p7/m, z31.h, z31.h233// CHECK-ENCODING: encoding: [0xff,0xbf,0x50,0x44]234// CHECK-ERROR: instruction requires: sme2p3 or sve2p3235// CHECK-UNKNOWN: 4450bfff <unknown>236 237subp z0.s, p0/m, z0.s, z0.s238// CHECK-INST: subp z0.s, p0/m, z0.s, z0.s239// CHECK-ENCODING: encoding: [0x00,0xa0,0x90,0x44]240// CHECK-ERROR: instruction requires: sme2p3 or sve2p3241// CHECK-UNKNOWN: 4490a000 <unknown>242 243subp z31.s, p7/m, z31.s, z31.s244// CHECK-INST: subp z31.s, p7/m, z31.s, z31.s245// CHECK-ENCODING: encoding: [0xff,0xbf,0x90,0x44]246// CHECK-ERROR: instruction requires: sme2p3 or sve2p3247// CHECK-UNKNOWN: 4490bfff <unknown>248 249subp z0.d, p0/m, z0.d, z0.d250// CHECK-INST: subp z0.d, p0/m, z0.d, z0.d251// CHECK-ENCODING: encoding: [0x00,0xa0,0xd0,0x44]252// CHECK-ERROR: instruction requires: sme2p3 or sve2p3253// CHECK-UNKNOWN: 44d0a000 <unknown>254 255subp z31.d, p7/m, z31.d, z31.d256// CHECK-INST: subp z31.d, p7/m, z31.d, z31.d257// CHECK-ENCODING: encoding: [0xff,0xbf,0xd0,0x44]258// CHECK-ERROR: instruction requires: sme2p3 or sve2p3259// CHECK-UNKNOWN: 44d0bfff <unknown>260 261movprfx z0.b, p0/m, z7.b262subp	z0.b, p0/m, z0.b, z1.b263// CHECK-INST: movprfx z0.b, p0/m, z7.b264// CHECK-INST: subp z0.b, p0/m, z0.b, z1.b265// CHECK-ENCODING: encoding: [0x20,0xa0,0x10,0x44]266// CHECK-ERROR: instruction requires: sme2p3 or sve2p3267// CHECK-UNKNOWN: 4410a020 <unknown>268 269movprfx z0, z7270subp	z0.b, p0/m, z0.b, z1.b271// CHECK-INST: movprfx z0, z7272// CHECK-INST: subp z0.b, p0/m, z0.b, z1.b273// CHECK-ENCODING: encoding: [0x20,0xa0,0x10,0x44]274// CHECK-ERROR: instruction requires: sme2p3 or sve2p3275// CHECK-UNKNOWN: 4410a020 <unknown>276