116 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 < %s \2// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \4// RUN: | FileCheck %s --check-prefix=CHECK-ERROR5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2p3 < %s \6// RUN: | llvm-objdump -d --mattr=+sve2p3 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST7// 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-UNKNOWN9// Disassemble encoding and check the re-encoding (-show-encoding) matches.10// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 < %s \11// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \12// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2p3 -disassemble -show-encoding \13// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST14 15// ---------------------------------------------------------------16// Lookup table read with 6-bit indices (8-bit)17 18luti6 z0.b, { z0.b, z1.b }, z019// CHECK-INST: luti6 z0.b, { z0.b, z1.b }, z020// CHECK-ENCODING: encoding: [0x00,0xac,0x20,0x45]21// CHECK-ERROR: instruction requires: sve2p322// CHECK-UNKNOWN: 4520ac00 <unknown>23 24luti6 z10.b, { z0.b, z1.b }, z025// CHECK-INST: luti6 z10.b, { z0.b, z1.b }, z026// CHECK-ENCODING: encoding: [0x0a,0xac,0x20,0x45]27// CHECK-ERROR: instruction requires: sve2p328// CHECK-UNKNOWN: 4520ac0a <unknown>29 30luti6 z21.b, { z0.b, z1.b }, z031// CHECK-INST: luti6 z21.b, { z0.b, z1.b }, z032// CHECK-ENCODING: encoding: [0x15,0xac,0x20,0x45]33// CHECK-ERROR: instruction requires: sve2p334// CHECK-UNKNOWN: 4520ac15 <unknown>35 36luti6 z31.b, { z0.b, z1.b }, z037// CHECK-INST: luti6 z31.b, { z0.b, z1.b }, z038// CHECK-ENCODING: encoding: [0x1f,0xac,0x20,0x45]39// CHECK-ERROR: instruction requires: sve2p340// CHECK-UNKNOWN: 4520ac1f <unknown>41 42luti6 z0.b, { z31.b, z0.b }, z3143// CHECK-INST: luti6 z0.b, { z31.b, z0.b }, z3144// CHECK-ENCODING: encoding: [0xe0,0xaf,0x3f,0x45]45// CHECK-ERROR: instruction requires: sve2p346// CHECK-UNKNOWN: 453fafe0 <unknown>47 48luti6 z10.b, { z31.b, z0.b }, z3149// CHECK-INST: luti6 z10.b, { z31.b, z0.b }, z3150// CHECK-ENCODING: encoding: [0xea,0xaf,0x3f,0x45]51// CHECK-ERROR: instruction requires: sve2p352// CHECK-UNKNOWN: 453fafea <unknown>53 54luti6 z21.b, { z31.b, z0.b }, z3155// CHECK-INST: luti6 z21.b, { z31.b, z0.b }, z3156// CHECK-ENCODING: encoding: [0xf5,0xaf,0x3f,0x45]57// CHECK-ERROR: instruction requires: sve2p358// CHECK-UNKNOWN: 453faff5 <unknown>59 60luti6 z31.b, { z31.b, z0.b }, z3161// CHECK-INST: luti6 z31.b, { z31.b, z0.b }, z3162// CHECK-ENCODING: encoding: [0xff,0xaf,0x3f,0x45]63// CHECK-ERROR: instruction requires: sve2p364// CHECK-UNKNOWN: 453fafff <unknown>65 66// ---------------------------------------------------------------67// Lookup table read with 6-bit indices (16-bit)68 69luti6 z0.h, { z0.h, z1.h }, z0[0]70// CHECK-INST: luti6 z0.h, { z0.h, z1.h }, z0[0]71// CHECK-ENCODING: encoding: [0x00,0xac,0x60,0x45]72// CHECK-ERROR: instruction requires: sme2p3 or sve2p373// CHECK-UNKNOWN: 4560ac00 <unknown>74 75luti6 z10.h, { z0.h, z1.h }, z0[0]76// CHECK-INST: luti6 z10.h, { z0.h, z1.h }, z0[0]77// CHECK-ENCODING: encoding: [0x0a,0xac,0x60,0x45]78// CHECK-ERROR: instruction requires: sme2p3 or sve2p379// CHECK-UNKNOWN: 4560ac0a <unknown>80 81luti6 z21.h, { z0.h, z1.h }, z0[0]82// CHECK-INST: luti6 z21.h, { z0.h, z1.h }, z0[0]83// CHECK-ENCODING: encoding: [0x15,0xac,0x60,0x45]84// CHECK-ERROR: instruction requires: sme2p3 or sve2p385// CHECK-UNKNOWN: 4560ac15 <unknown>86 87luti6 z31.h, { z0.h, z1.h }, z0[0]88// CHECK-INST: luti6 z31.h, { z0.h, z1.h }, z0[0]89// CHECK-ENCODING: encoding: [0x1f,0xac,0x60,0x45]90// CHECK-ERROR: instruction requires: sme2p3 or sve2p391// CHECK-UNKNOWN: 4560ac1f <unknown>92 93luti6 z0.h, { z31.h, z0.h }, z31[1]94// CHECK-INST: luti6 z0.h, { z31.h, z0.h }, z31[1]95// CHECK-ENCODING: encoding: [0xe0,0xaf,0xff,0x45]96// CHECK-ERROR: instruction requires: sme2p3 or sve2p397// CHECK-UNKNOWN: 45ffafe0 <unknown>98 99luti6 z10.h, { z31.h, z0.h }, z31[1]100// CHECK-INST: luti6 z10.h, { z31.h, z0.h }, z31[1]101// CHECK-ENCODING: encoding: [0xea,0xaf,0xff,0x45]102// CHECK-ERROR: instruction requires: sme2p3 or sve2p3103// CHECK-UNKNOWN: 45ffafea <unknown>104 105luti6 z21.h, { z31.h, z0.h }, z31[1]106// CHECK-INST: luti6 z21.h, { z31.h, z0.h }, z31[1]107// CHECK-ENCODING: encoding: [0xf5,0xaf,0xff,0x45]108// CHECK-ERROR: instruction requires: sme2p3 or sve2p3109// CHECK-UNKNOWN: 45ffaff5 <unknown>110 111luti6 z31.h, { z31.h, z0.h }, z31[1]112// CHECK-INST: luti6 z31.h, { z31.h, z0.h }, z31[1]113// CHECK-ENCODING: encoding: [0xff,0xaf,0xff,0x45]114// CHECK-ERROR: instruction requires: sme2p3 or sve2p3115// CHECK-UNKNOWN: 45ffafff <unknown>116