brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.6 KiB · d9b7028 Raw
267 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve < %s \2// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST3// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme < %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=+sve < %s \8// RUN:        | llvm-objdump --no-print-imm-hex -d --mattr=+sve - | FileCheck %s --check-prefix=CHECK-INST9// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \10// RUN:   | llvm-objdump --no-print-imm-hex -d --mattr=-sve - | FileCheck %s --check-prefix=CHECK-UNKNOWN11 12// ---------------------------------------------------------------------------//13// Test all predicate sizes for pow2 pattern14// ---------------------------------------------------------------------------//15 16ptrues   p0.b, pow217// CHECK-INST: ptrues   p0.b, pow218// CHECK-ENCODING: [0x00,0xe0,0x19,0x25]19// CHECK-ERROR: instruction requires: sve or sme20// CHECK-UNKNOWN:	2519e000  <unknown>21 22ptrues   p0.h, pow223// CHECK-INST: ptrues   p0.h, pow224// CHECK-ENCODING: [0x00,0xe0,0x59,0x25]25// CHECK-ERROR: instruction requires: sve or sme26// CHECK-UNKNOWN:	2559e000  <unknown>27 28ptrues   p0.s, pow229// CHECK-INST: ptrues   p0.s, pow230// CHECK-ENCODING: [0x00,0xe0,0x99,0x25]31// CHECK-ERROR: instruction requires: sve or sme32// CHECK-UNKNOWN:	2599e000  <unknown>33 34ptrues   p0.d, pow235// CHECK-INST: ptrues   p0.d, pow236// CHECK-ENCODING: [0x00,0xe0,0xd9,0x25]37// CHECK-ERROR: instruction requires: sve or sme38// CHECK-UNKNOWN:	25d9e000  <unknown>39 40// ---------------------------------------------------------------------------//41// Test all predicate sizes without explicit pattern42// ---------------------------------------------------------------------------//43 44ptrues   p15.b45// CHECK-INST: ptrues   p15.b46// CHECK-ENCODING: [0xef,0xe3,0x19,0x25]47// CHECK-ERROR: instruction requires: sve or sme48// CHECK-UNKNOWN:	2519e3ef  <unknown>49 50ptrues   p15.h51// CHECK-INST: ptrues   p15.h52// CHECK-ENCODING: [0xef,0xe3,0x59,0x25]53// CHECK-ERROR: instruction requires: sve or sme54// CHECK-UNKNOWN:	2559e3ef  <unknown>55 56ptrues   p15.s57// CHECK-INST: ptrues   p15.s58// CHECK-ENCODING: [0xef,0xe3,0x99,0x25]59// CHECK-ERROR: instruction requires: sve or sme60// CHECK-UNKNOWN:	2599e3ef  <unknown>61 62ptrues   p15.d63// CHECK-INST: ptrues   p15.d64// CHECK-ENCODING: [0xef,0xe3,0xd9,0x25]65// CHECK-ERROR: instruction requires: sve or sme66// CHECK-UNKNOWN:	25d9e3ef  <unknown>67 68// ---------------------------------------------------------------------------//69// Test available patterns70// ---------------------------------------------------------------------------//71 72ptrues   p7.s, #173// CHECK-INST: ptrues   p7.s, vl174// CHECK-ENCODING: [0x27,0xe0,0x99,0x25]75// CHECK-ERROR: instruction requires: sve or sme76// CHECK-UNKNOWN:	2599e027  <unknown>77 78ptrues   p7.s, vl179// CHECK-INST: ptrues   p7.s, vl180// CHECK-ENCODING: [0x27,0xe0,0x99,0x25]81// CHECK-ERROR: instruction requires: sve or sme82// CHECK-UNKNOWN:	2599e027  <unknown>83 84ptrues   p7.s, vl285// CHECK-INST: ptrues   p7.s, vl286// CHECK-ENCODING: [0x47,0xe0,0x99,0x25]87// CHECK-ERROR: instruction requires: sve or sme88// CHECK-UNKNOWN:	2599e047  <unknown>89 90ptrues   p7.s, vl391// CHECK-INST: ptrues   p7.s, vl392// CHECK-ENCODING: [0x67,0xe0,0x99,0x25]93// CHECK-ERROR: instruction requires: sve or sme94// CHECK-UNKNOWN:	2599e067  <unknown>95 96ptrues   p7.s, vl497// CHECK-INST: ptrues   p7.s, vl498// CHECK-ENCODING: [0x87,0xe0,0x99,0x25]99// CHECK-ERROR: instruction requires: sve or sme100// CHECK-UNKNOWN:	2599e087  <unknown>101 102ptrues   p7.s, vl5103// CHECK-INST: ptrues   p7.s, vl5104// CHECK-ENCODING: [0xa7,0xe0,0x99,0x25]105// CHECK-ERROR: instruction requires: sve or sme106// CHECK-UNKNOWN:	2599e0a7  <unknown>107 108ptrues   p7.s, vl6109// CHECK-INST: ptrues   p7.s, vl6110// CHECK-ENCODING: [0xc7,0xe0,0x99,0x25]111// CHECK-ERROR: instruction requires: sve or sme112// CHECK-UNKNOWN:	2599e0c7  <unknown>113 114ptrues   p7.s, vl7115// CHECK-INST: ptrues   p7.s, vl7116// CHECK-ENCODING: [0xe7,0xe0,0x99,0x25]117// CHECK-ERROR: instruction requires: sve or sme118// CHECK-UNKNOWN:	2599e0e7  <unknown>119 120ptrues   p7.s, vl8121// CHECK-INST: ptrues   p7.s, vl8122// CHECK-ENCODING: [0x07,0xe1,0x99,0x25]123// CHECK-ERROR: instruction requires: sve or sme124// CHECK-UNKNOWN:	2599e107  <unknown>125 126ptrues   p7.s, vl16127// CHECK-INST: ptrues   p7.s, vl16128// CHECK-ENCODING: [0x27,0xe1,0x99,0x25]129// CHECK-ERROR: instruction requires: sve or sme130// CHECK-UNKNOWN:	2599e127  <unknown>131 132ptrues   p7.s, vl32133// CHECK-INST: ptrues   p7.s, vl32134// CHECK-ENCODING: [0x47,0xe1,0x99,0x25]135// CHECK-ERROR: instruction requires: sve or sme136// CHECK-UNKNOWN:	2599e147  <unknown>137 138ptrues   p7.s, vl64139// CHECK-INST: ptrues   p7.s, vl64140// CHECK-ENCODING: [0x67,0xe1,0x99,0x25]141// CHECK-ERROR: instruction requires: sve or sme142// CHECK-UNKNOWN:	2599e167  <unknown>143 144ptrues   p7.s, vl128145// CHECK-INST: ptrues   p7.s, vl128146// CHECK-ENCODING: [0x87,0xe1,0x99,0x25]147// CHECK-ERROR: instruction requires: sve or sme148// CHECK-UNKNOWN:	2599e187  <unknown>149 150ptrues   p7.s, vl256151// CHECK-INST: ptrues   p7.s, vl256152// CHECK-ENCODING: [0xa7,0xe1,0x99,0x25]153// CHECK-ERROR: instruction requires: sve or sme154// CHECK-UNKNOWN:	2599e1a7  <unknown>155 156ptrues   p7.s, mul4157// CHECK-INST: ptrues   p7.s, mul4158// CHECK-ENCODING: [0xa7,0xe3,0x99,0x25]159// CHECK-ERROR: instruction requires: sve or sme160// CHECK-UNKNOWN:	2599e3a7  <unknown>161 162ptrues   p7.s, mul3163// CHECK-INST: ptrues   p7.s, mul3164// CHECK-ENCODING: [0xc7,0xe3,0x99,0x25]165// CHECK-ERROR: instruction requires: sve or sme166// CHECK-UNKNOWN:	2599e3c7  <unknown>167 168ptrues   p7.s, all169// CHECK-INST: ptrues   p7.s170// CHECK-ENCODING: [0xe7,0xe3,0x99,0x25]171// CHECK-ERROR: instruction requires: sve or sme172// CHECK-UNKNOWN:	2599e3e7  <unknown>173 174// ---------------------------------------------------------------------------//175// Test immediate values not corresponding to a named pattern176// ---------------------------------------------------------------------------//177 178ptrues   p7.s, #14179// CHECK-INST: ptrues   p7.s, #14180// CHECK-ENCODING: [0xc7,0xe1,0x99,0x25]181// CHECK-ERROR: instruction requires: sve or sme182// CHECK-UNKNOWN: 2599e1c7 <unknown>183 184ptrues   p7.s, #15185// CHECK-INST: ptrues   p7.s, #15186// CHECK-ENCODING: [0xe7,0xe1,0x99,0x25]187// CHECK-ERROR: instruction requires: sve or sme188// CHECK-UNKNOWN: 2599e1e7 <unknown>189 190ptrues   p7.s, #16191// CHECK-INST: ptrues   p7.s, #16192// CHECK-ENCODING: [0x07,0xe2,0x99,0x25]193// CHECK-ERROR: instruction requires: sve or sme194// CHECK-UNKNOWN: 2599e207 <unknown>195 196ptrues   p7.s, #17197// CHECK-INST: ptrues   p7.s, #17198// CHECK-ENCODING: [0x27,0xe2,0x99,0x25]199// CHECK-ERROR: instruction requires: sve or sme200// CHECK-UNKNOWN: 2599e227 <unknown>201 202ptrues   p7.s, #18203// CHECK-INST: ptrues   p7.s, #18204// CHECK-ENCODING: [0x47,0xe2,0x99,0x25]205// CHECK-ERROR: instruction requires: sve or sme206// CHECK-UNKNOWN: 2599e247 <unknown>207 208ptrues   p7.s, #19209// CHECK-INST: ptrues   p7.s, #19210// CHECK-ENCODING: [0x67,0xe2,0x99,0x25]211// CHECK-ERROR: instruction requires: sve or sme212// CHECK-UNKNOWN: 2599e267 <unknown>213 214ptrues   p7.s, #20215// CHECK-INST: ptrues   p7.s, #20216// CHECK-ENCODING: [0x87,0xe2,0x99,0x25]217// CHECK-ERROR: instruction requires: sve or sme218// CHECK-UNKNOWN: 2599e287 <unknown>219 220ptrues   p7.s, #21221// CHECK-INST: ptrues   p7.s, #21222// CHECK-ENCODING: [0xa7,0xe2,0x99,0x25]223// CHECK-ERROR: instruction requires: sve or sme224// CHECK-UNKNOWN: 2599e2a7 <unknown>225 226ptrues   p7.s, #22227// CHECK-INST: ptrues   p7.s, #22228// CHECK-ENCODING: [0xc7,0xe2,0x99,0x25]229// CHECK-ERROR: instruction requires: sve or sme230// CHECK-UNKNOWN: 2599e2c7 <unknown>231 232ptrues   p7.s, #23233// CHECK-INST: ptrues   p7.s, #23234// CHECK-ENCODING: [0xe7,0xe2,0x99,0x25]235// CHECK-ERROR: instruction requires: sve or sme236// CHECK-UNKNOWN: 2599e2e7 <unknown>237 238ptrues   p7.s, #24239// CHECK-INST: ptrues   p7.s, #24240// CHECK-ENCODING: [0x07,0xe3,0x99,0x25]241// CHECK-ERROR: instruction requires: sve or sme242// CHECK-UNKNOWN: 2599e307 <unknown>243 244ptrues   p7.s, #25245// CHECK-INST: ptrues   p7.s, #25246// CHECK-ENCODING: [0x27,0xe3,0x99,0x25]247// CHECK-ERROR: instruction requires: sve or sme248// CHECK-UNKNOWN: 2599e327 <unknown>249 250ptrues   p7.s, #26251// CHECK-INST: ptrues   p7.s, #26252// CHECK-ENCODING: [0x47,0xe3,0x99,0x25]253// CHECK-ERROR: instruction requires: sve or sme254// CHECK-UNKNOWN: 2599e347 <unknown>255 256ptrues   p7.s, #27257// CHECK-INST: ptrues   p7.s, #27258// CHECK-ENCODING: [0x67,0xe3,0x99,0x25]259// CHECK-ERROR: instruction requires: sve or sme260// CHECK-UNKNOWN: 2599e367 <unknown>261 262ptrues   p7.s, #28263// CHECK-INST: ptrues   p7.s, #28264// CHECK-ENCODING: [0x87,0xe3,0x99,0x25]265// CHECK-ERROR: instruction requires: sve or sme266// CHECK-UNKNOWN: 2599e387 <unknown>267