brintos

brintos / llvm-project-archived public Read only

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