164 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme < %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=+sme < %s \6// RUN: | llvm-objdump -d --mattr=+sme - | FileCheck %s --check-prefix=CHECK-INST7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme < %s \8// RUN: | llvm-objdump -d --mattr=-sme - | 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=+sme < %s \11// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \12// RUN: | llvm-mc -triple=aarch64 -mattr=+sme -disassemble -show-encoding \13// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST14 15// --------------------------------------------------------------------------//16// Widening17 18fmops za0.s, p0/m, p0/m, z0.h, z0.h19// CHECK-INST: fmops za0.s, p0/m, p0/m, z0.h, z0.h20// CHECK-ENCODING: [0x10,0x00,0xa0,0x81]21// CHECK-ERROR: instruction requires: sme22// CHECK-UNKNOWN: 81a00010 <unknown>23 24fmops za1.s, p5/m, p2/m, z10.h, z21.h25// CHECK-INST: fmops za1.s, p5/m, p2/m, z10.h, z21.h26// CHECK-ENCODING: [0x51,0x55,0xb5,0x81]27// CHECK-ERROR: instruction requires: sme28// CHECK-UNKNOWN: 81b55551 <unknown>29 30fmops za3.s, p3/m, p7/m, z13.h, z8.h31// CHECK-INST: fmops za3.s, p3/m, p7/m, z13.h, z8.h32// CHECK-ENCODING: [0xb3,0xed,0xa8,0x81]33// CHECK-ERROR: instruction requires: sme34// CHECK-UNKNOWN: 81a8edb3 <unknown>35 36fmops za3.s, p7/m, p7/m, z31.h, z31.h37// CHECK-INST: fmops za3.s, p7/m, p7/m, z31.h, z31.h38// CHECK-ENCODING: [0xf3,0xff,0xbf,0x81]39// CHECK-ERROR: instruction requires: sme40// CHECK-UNKNOWN: 81bffff3 <unknown>41 42fmops za1.s, p3/m, p0/m, z17.h, z16.h43// CHECK-INST: fmops za1.s, p3/m, p0/m, z17.h, z16.h44// CHECK-ENCODING: [0x31,0x0e,0xb0,0x81]45// CHECK-ERROR: instruction requires: sme46// CHECK-UNKNOWN: 81b00e31 <unknown>47 48fmops za1.s, p1/m, p4/m, z1.h, z30.h49// CHECK-INST: fmops za1.s, p1/m, p4/m, z1.h, z30.h50// CHECK-ENCODING: [0x31,0x84,0xbe,0x81]51// CHECK-ERROR: instruction requires: sme52// CHECK-UNKNOWN: 81be8431 <unknown>53 54fmops za0.s, p5/m, p2/m, z19.h, z20.h55// CHECK-INST: fmops za0.s, p5/m, p2/m, z19.h, z20.h56// CHECK-ENCODING: [0x70,0x56,0xb4,0x81]57// CHECK-ERROR: instruction requires: sme58// CHECK-UNKNOWN: 81b45670 <unknown>59 60fmops za0.s, p6/m, p0/m, z12.h, z2.h61// CHECK-INST: fmops za0.s, p6/m, p0/m, z12.h, z2.h62// CHECK-ENCODING: [0x90,0x19,0xa2,0x81]63// CHECK-ERROR: instruction requires: sme64// CHECK-UNKNOWN: 81a21990 <unknown>65 66fmops za1.s, p2/m, p6/m, z1.h, z26.h67// CHECK-INST: fmops za1.s, p2/m, p6/m, z1.h, z26.h68// CHECK-ENCODING: [0x31,0xc8,0xba,0x81]69// CHECK-ERROR: instruction requires: sme70// CHECK-UNKNOWN: 81bac831 <unknown>71 72fmops za1.s, p2/m, p0/m, z22.h, z30.h73// CHECK-INST: fmops za1.s, p2/m, p0/m, z22.h, z30.h74// CHECK-ENCODING: [0xd1,0x0a,0xbe,0x81]75// CHECK-ERROR: instruction requires: sme76// CHECK-UNKNOWN: 81be0ad1 <unknown>77 78fmops za2.s, p5/m, p7/m, z9.h, z1.h79// CHECK-INST: fmops za2.s, p5/m, p7/m, z9.h, z1.h80// CHECK-ENCODING: [0x32,0xf5,0xa1,0x81]81// CHECK-ERROR: instruction requires: sme82// CHECK-UNKNOWN: 81a1f532 <unknown>83 84fmops za3.s, p2/m, p5/m, z12.h, z11.h85// CHECK-INST: fmops za3.s, p2/m, p5/m, z12.h, z11.h86// CHECK-ENCODING: [0x93,0xa9,0xab,0x81]87// CHECK-ERROR: instruction requires: sme88// CHECK-UNKNOWN: 81aba993 <unknown>89 90// --------------------------------------------------------------------------//91// Non-widening (single-precision)92 93fmops za0.s, p0/m, p0/m, z0.s, z0.s94// CHECK-INST: fmops za0.s, p0/m, p0/m, z0.s, z0.s95// CHECK-ENCODING: [0x10,0x00,0x80,0x80]96// CHECK-ERROR: instruction requires: sme97// CHECK-UNKNOWN: 80800010 <unknown>98 99fmops za1.s, p5/m, p2/m, z10.s, z21.s100// CHECK-INST: fmops za1.s, p5/m, p2/m, z10.s, z21.s101// CHECK-ENCODING: [0x51,0x55,0x95,0x80]102// CHECK-ERROR: instruction requires: sme103// CHECK-UNKNOWN: 80955551 <unknown>104 105fmops za3.s, p3/m, p7/m, z13.s, z8.s106// CHECK-INST: fmops za3.s, p3/m, p7/m, z13.s, z8.s107// CHECK-ENCODING: [0xb3,0xed,0x88,0x80]108// CHECK-ERROR: instruction requires: sme109// CHECK-UNKNOWN: 8088edb3 <unknown>110 111fmops za3.s, p7/m, p7/m, z31.s, z31.s112// CHECK-INST: fmops za3.s, p7/m, p7/m, z31.s, z31.s113// CHECK-ENCODING: [0xf3,0xff,0x9f,0x80]114// CHECK-ERROR: instruction requires: sme115// CHECK-UNKNOWN: 809ffff3 <unknown>116 117fmops za1.s, p3/m, p0/m, z17.s, z16.s118// CHECK-INST: fmops za1.s, p3/m, p0/m, z17.s, z16.s119// CHECK-ENCODING: [0x31,0x0e,0x90,0x80]120// CHECK-ERROR: instruction requires: sme121// CHECK-UNKNOWN: 80900e31 <unknown>122 123fmops za1.s, p1/m, p4/m, z1.s, z30.s124// CHECK-INST: fmops za1.s, p1/m, p4/m, z1.s, z30.s125// CHECK-ENCODING: [0x31,0x84,0x9e,0x80]126// CHECK-ERROR: instruction requires: sme127// CHECK-UNKNOWN: 809e8431 <unknown>128 129fmops za0.s, p5/m, p2/m, z19.s, z20.s130// CHECK-INST: fmops za0.s, p5/m, p2/m, z19.s, z20.s131// CHECK-ENCODING: [0x70,0x56,0x94,0x80]132// CHECK-ERROR: instruction requires: sme133// CHECK-UNKNOWN: 80945670 <unknown>134 135fmops za0.s, p6/m, p0/m, z12.s, z2.s136// CHECK-INST: fmops za0.s, p6/m, p0/m, z12.s, z2.s137// CHECK-ENCODING: [0x90,0x19,0x82,0x80]138// CHECK-ERROR: instruction requires: sme139// CHECK-UNKNOWN: 80821990 <unknown>140 141fmops za1.s, p2/m, p6/m, z1.s, z26.s142// CHECK-INST: fmops za1.s, p2/m, p6/m, z1.s, z26.s143// CHECK-ENCODING: [0x31,0xc8,0x9a,0x80]144// CHECK-ERROR: instruction requires: sme145// CHECK-UNKNOWN: 809ac831 <unknown>146 147fmops za1.s, p2/m, p0/m, z22.s, z30.s148// CHECK-INST: fmops za1.s, p2/m, p0/m, z22.s, z30.s149// CHECK-ENCODING: [0xd1,0x0a,0x9e,0x80]150// CHECK-ERROR: instruction requires: sme151// CHECK-UNKNOWN: 809e0ad1 <unknown>152 153fmops za2.s, p5/m, p7/m, z9.s, z1.s154// CHECK-INST: fmops za2.s, p5/m, p7/m, z9.s, z1.s155// CHECK-ENCODING: [0x32,0xf5,0x81,0x80]156// CHECK-ERROR: instruction requires: sme157// CHECK-UNKNOWN: 8081f532 <unknown>158 159fmops za3.s, p2/m, p5/m, z12.s, z11.s160// CHECK-INST: fmops za3.s, p2/m, p5/m, z12.s, z11.s161// CHECK-ENCODING: [0x93,0xa9,0x8b,0x80]162// CHECK-ERROR: instruction requires: sme163// CHECK-UNKNOWN: 808ba993 <unknown>164