210 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 vector form and aliases.14// ---------------------------------------------------------------------------//15 16incw z0.s17// CHECK-INST: incw z0.s18// CHECK-ENCODING: [0xe0,0xc3,0xb0,0x04]19// CHECK-ERROR: instruction requires: sve or sme20// CHECK-UNKNOWN: 04b0c3e0 <unknown>21 22incw z0.s, all23// CHECK-INST: incw z0.s24// CHECK-ENCODING: [0xe0,0xc3,0xb0,0x04]25// CHECK-ERROR: instruction requires: sve or sme26// CHECK-UNKNOWN: 04b0c3e0 <unknown>27 28incw z0.s, all, mul #129// CHECK-INST: incw z0.s30// CHECK-ENCODING: [0xe0,0xc3,0xb0,0x04]31// CHECK-ERROR: instruction requires: sve or sme32// CHECK-UNKNOWN: 04b0c3e0 <unknown>33 34incw z0.s, all, mul #1635// CHECK-INST: incw z0.s, all, mul #1636// CHECK-ENCODING: [0xe0,0xc3,0xbf,0x04]37// CHECK-ERROR: instruction requires: sve or sme38// CHECK-UNKNOWN: 04bfc3e0 <unknown>39 40 41// ---------------------------------------------------------------------------//42// Test scalar form and aliases.43// ---------------------------------------------------------------------------//44 45incw x046// CHECK-INST: incw x047// CHECK-ENCODING: [0xe0,0xe3,0xb0,0x04]48// CHECK-ERROR: instruction requires: sve or sme49// CHECK-UNKNOWN: 04b0e3e0 <unknown>50 51incw x0, all52// CHECK-INST: incw x053// CHECK-ENCODING: [0xe0,0xe3,0xb0,0x04]54// CHECK-ERROR: instruction requires: sve or sme55// CHECK-UNKNOWN: 04b0e3e0 <unknown>56 57incw x0, all, mul #158// CHECK-INST: incw x059// CHECK-ENCODING: [0xe0,0xe3,0xb0,0x04]60// CHECK-ERROR: instruction requires: sve or sme61// CHECK-UNKNOWN: 04b0e3e0 <unknown>62 63incw x0, all, mul #1664// CHECK-INST: incw x0, all, mul #1665// CHECK-ENCODING: [0xe0,0xe3,0xbf,0x04]66// CHECK-ERROR: instruction requires: sve or sme67// CHECK-UNKNOWN: 04bfe3e0 <unknown>68 69 70// ---------------------------------------------------------------------------//71// Test predicate patterns72// ---------------------------------------------------------------------------//73 74 75incw x0, pow276// CHECK-INST: incw x0, pow277// CHECK-ENCODING: [0x00,0xe0,0xb0,0x04]78// CHECK-ERROR: instruction requires: sve or sme79// CHECK-UNKNOWN: 04b0e000 <unknown>80 81incw x0, vl182// CHECK-INST: incw x0, vl183// CHECK-ENCODING: [0x20,0xe0,0xb0,0x04]84// CHECK-ERROR: instruction requires: sve or sme85// CHECK-UNKNOWN: 04b0e020 <unknown>86 87incw x0, vl288// CHECK-INST: incw x0, vl289// CHECK-ENCODING: [0x40,0xe0,0xb0,0x04]90// CHECK-ERROR: instruction requires: sve or sme91// CHECK-UNKNOWN: 04b0e040 <unknown>92 93incw x0, vl394// CHECK-INST: incw x0, vl395// CHECK-ENCODING: [0x60,0xe0,0xb0,0x04]96// CHECK-ERROR: instruction requires: sve or sme97// CHECK-UNKNOWN: 04b0e060 <unknown>98 99incw x0, vl4100// CHECK-INST: incw x0, vl4101// CHECK-ENCODING: [0x80,0xe0,0xb0,0x04]102// CHECK-ERROR: instruction requires: sve or sme103// CHECK-UNKNOWN: 04b0e080 <unknown>104 105incw x0, vl5106// CHECK-INST: incw x0, vl5107// CHECK-ENCODING: [0xa0,0xe0,0xb0,0x04]108// CHECK-ERROR: instruction requires: sve or sme109// CHECK-UNKNOWN: 04b0e0a0 <unknown>110 111incw x0, vl6112// CHECK-INST: incw x0, vl6113// CHECK-ENCODING: [0xc0,0xe0,0xb0,0x04]114// CHECK-ERROR: instruction requires: sve or sme115// CHECK-UNKNOWN: 04b0e0c0 <unknown>116 117incw x0, vl7118// CHECK-INST: incw x0, vl7119// CHECK-ENCODING: [0xe0,0xe0,0xb0,0x04]120// CHECK-ERROR: instruction requires: sve or sme121// CHECK-UNKNOWN: 04b0e0e0 <unknown>122 123incw x0, vl8124// CHECK-INST: incw x0, vl8125// CHECK-ENCODING: [0x00,0xe1,0xb0,0x04]126// CHECK-ERROR: instruction requires: sve or sme127// CHECK-UNKNOWN: 04b0e100 <unknown>128 129incw x0, vl16130// CHECK-INST: incw x0, vl16131// CHECK-ENCODING: [0x20,0xe1,0xb0,0x04]132// CHECK-ERROR: instruction requires: sve or sme133// CHECK-UNKNOWN: 04b0e120 <unknown>134 135incw x0, vl32136// CHECK-INST: incw x0, vl32137// CHECK-ENCODING: [0x40,0xe1,0xb0,0x04]138// CHECK-ERROR: instruction requires: sve or sme139// CHECK-UNKNOWN: 04b0e140 <unknown>140 141incw x0, vl64142// CHECK-INST: incw x0, vl64143// CHECK-ENCODING: [0x60,0xe1,0xb0,0x04]144// CHECK-ERROR: instruction requires: sve or sme145// CHECK-UNKNOWN: 04b0e160 <unknown>146 147incw x0, vl128148// CHECK-INST: incw x0, vl128149// CHECK-ENCODING: [0x80,0xe1,0xb0,0x04]150// CHECK-ERROR: instruction requires: sve or sme151// CHECK-UNKNOWN: 04b0e180 <unknown>152 153incw x0, vl256154// CHECK-INST: incw x0, vl256155// CHECK-ENCODING: [0xa0,0xe1,0xb0,0x04]156// CHECK-ERROR: instruction requires: sve or sme157// CHECK-UNKNOWN: 04b0e1a0 <unknown>158 159incw x0, #14160// CHECK-INST: incw x0, #14161// CHECK-ENCODING: [0xc0,0xe1,0xb0,0x04]162// CHECK-ERROR: instruction requires: sve or sme163// CHECK-UNKNOWN: 04b0e1c0 <unknown>164 165incw x0, #28166// CHECK-INST: incw x0, #28167// CHECK-ENCODING: [0x80,0xe3,0xb0,0x04]168// CHECK-ERROR: instruction requires: sve or sme169// CHECK-UNKNOWN: 04b0e380 <unknown>170 171 172// --------------------------------------------------------------------------//173// Test compatibility with MOVPRFX instruction.174 175movprfx z0, z7176// CHECK-INST: movprfx z0, z7177// CHECK-ENCODING: [0xe0,0xbc,0x20,0x04]178// CHECK-ERROR: instruction requires: sve or sme179// CHECK-UNKNOWN: 0420bce0 <unknown>180 181incw z0.s182// CHECK-INST: incw z0.s183// CHECK-ENCODING: [0xe0,0xc3,0xb0,0x04]184// CHECK-ERROR: instruction requires: sve or sme185// CHECK-UNKNOWN: 04b0c3e0 <unknown>186 187movprfx z0, z7188// CHECK-INST: movprfx z0, z7189// CHECK-ENCODING: [0xe0,0xbc,0x20,0x04]190// CHECK-ERROR: instruction requires: sve or sme191// CHECK-UNKNOWN: 0420bce0 <unknown>192 193incw z0.s, all, mul #16194// CHECK-INST: incw z0.s, all, mul #16195// CHECK-ENCODING: [0xe0,0xc3,0xbf,0x04]196// CHECK-ERROR: instruction requires: sve or sme197// CHECK-UNKNOWN: 04bfc3e0 <unknown>198 199movprfx z0, z7200// CHECK-INST: movprfx z0, z7201// CHECK-ENCODING: [0xe0,0xbc,0x20,0x04]202// CHECK-ERROR: instruction requires: sve or sme203// CHECK-UNKNOWN: 0420bce0 <unknown>204 205incw z0.s, all206// CHECK-INST: incw z0.s207// CHECK-ENCODING: [0xe0,0xc3,0xb0,0x04]208// CHECK-ERROR: instruction requires: sve or sme209// CHECK-UNKNOWN: 04b0c3e0 <unknown>210