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 18fmopa za0.s, p0/m, p0/m, z0.h, z0.h19// CHECK-INST: fmopa za0.s, p0/m, p0/m, z0.h, z0.h20// CHECK-ENCODING: [0x00,0x00,0xa0,0x81]21// CHECK-ERROR: instruction requires: sme22// CHECK-UNKNOWN: 81a00000 <unknown>23 24fmopa za1.s, p5/m, p2/m, z10.h, z21.h25// CHECK-INST: fmopa za1.s, p5/m, p2/m, z10.h, z21.h26// CHECK-ENCODING: [0x41,0x55,0xb5,0x81]27// CHECK-ERROR: instruction requires: sme28// CHECK-UNKNOWN: 81b55541 <unknown>29 30fmopa za3.s, p3/m, p7/m, z13.h, z8.h31// CHECK-INST: fmopa za3.s, p3/m, p7/m, z13.h, z8.h32// CHECK-ENCODING: [0xa3,0xed,0xa8,0x81]33// CHECK-ERROR: instruction requires: sme34// CHECK-UNKNOWN: 81a8eda3 <unknown>35 36fmopa za3.s, p7/m, p7/m, z31.h, z31.h37// CHECK-INST: fmopa za3.s, p7/m, p7/m, z31.h, z31.h38// CHECK-ENCODING: [0xe3,0xff,0xbf,0x81]39// CHECK-ERROR: instruction requires: sme40// CHECK-UNKNOWN: 81bfffe3 <unknown>41 42fmopa za1.s, p3/m, p0/m, z17.h, z16.h43// CHECK-INST: fmopa za1.s, p3/m, p0/m, z17.h, z16.h44// CHECK-ENCODING: [0x21,0x0e,0xb0,0x81]45// CHECK-ERROR: instruction requires: sme46// CHECK-UNKNOWN: 81b00e21 <unknown>47 48fmopa za1.s, p1/m, p4/m, z1.h, z30.h49// CHECK-INST: fmopa za1.s, p1/m, p4/m, z1.h, z30.h50// CHECK-ENCODING: [0x21,0x84,0xbe,0x81]51// CHECK-ERROR: instruction requires: sme52// CHECK-UNKNOWN: 81be8421 <unknown>53 54fmopa za0.s, p5/m, p2/m, z19.h, z20.h55// CHECK-INST: fmopa za0.s, p5/m, p2/m, z19.h, z20.h56// CHECK-ENCODING: [0x60,0x56,0xb4,0x81]57// CHECK-ERROR: instruction requires: sme58// CHECK-UNKNOWN: 81b45660 <unknown>59 60fmopa za0.s, p6/m, p0/m, z12.h, z2.h61// CHECK-INST: fmopa za0.s, p6/m, p0/m, z12.h, z2.h62// CHECK-ENCODING: [0x80,0x19,0xa2,0x81]63// CHECK-ERROR: instruction requires: sme64// CHECK-UNKNOWN: 81a21980 <unknown>65 66fmopa za1.s, p2/m, p6/m, z1.h, z26.h67// CHECK-INST: fmopa za1.s, p2/m, p6/m, z1.h, z26.h68// CHECK-ENCODING: [0x21,0xc8,0xba,0x81]69// CHECK-ERROR: instruction requires: sme70// CHECK-UNKNOWN: 81bac821 <unknown>71 72fmopa za1.s, p2/m, p0/m, z22.h, z30.h73// CHECK-INST: fmopa za1.s, p2/m, p0/m, z22.h, z30.h74// CHECK-ENCODING: [0xc1,0x0a,0xbe,0x81]75// CHECK-ERROR: instruction requires: sme76// CHECK-UNKNOWN: 81be0ac1 <unknown>77 78fmopa za2.s, p5/m, p7/m, z9.h, z1.h79// CHECK-INST: fmopa za2.s, p5/m, p7/m, z9.h, z1.h80// CHECK-ENCODING: [0x22,0xf5,0xa1,0x81]81// CHECK-ERROR: instruction requires: sme82// CHECK-UNKNOWN: 81a1f522 <unknown>83 84fmopa za3.s, p2/m, p5/m, z12.h, z11.h85// CHECK-INST: fmopa za3.s, p2/m, p5/m, z12.h, z11.h86// CHECK-ENCODING: [0x83,0xa9,0xab,0x81]87// CHECK-ERROR: instruction requires: sme88// CHECK-UNKNOWN: 81aba983 <unknown>89 90// --------------------------------------------------------------------------//91// Non-widening (single-precision)92 93fmopa za0.s, p0/m, p0/m, z0.s, z0.s94// CHECK-INST: fmopa za0.s, p0/m, p0/m, z0.s, z0.s95// CHECK-ENCODING: [0x00,0x00,0x80,0x80]96// CHECK-ERROR: instruction requires: sme97// CHECK-UNKNOWN: 80800000 <unknown>98 99fmopa za1.s, p5/m, p2/m, z10.s, z21.s100// CHECK-INST: fmopa za1.s, p5/m, p2/m, z10.s, z21.s101// CHECK-ENCODING: [0x41,0x55,0x95,0x80]102// CHECK-ERROR: instruction requires: sme103// CHECK-UNKNOWN: 80955541 <unknown>104 105fmopa za3.s, p3/m, p7/m, z13.s, z8.s106// CHECK-INST: fmopa za3.s, p3/m, p7/m, z13.s, z8.s107// CHECK-ENCODING: [0xa3,0xed,0x88,0x80]108// CHECK-ERROR: instruction requires: sme109// CHECK-UNKNOWN: 8088eda3 <unknown>110 111fmopa za3.s, p7/m, p7/m, z31.s, z31.s112// CHECK-INST: fmopa za3.s, p7/m, p7/m, z31.s, z31.s113// CHECK-ENCODING: [0xe3,0xff,0x9f,0x80]114// CHECK-ERROR: instruction requires: sme115// CHECK-UNKNOWN: 809fffe3 <unknown>116 117fmopa za1.s, p3/m, p0/m, z17.s, z16.s118// CHECK-INST: fmopa za1.s, p3/m, p0/m, z17.s, z16.s119// CHECK-ENCODING: [0x21,0x0e,0x90,0x80]120// CHECK-ERROR: instruction requires: sme121// CHECK-UNKNOWN: 80900e21 <unknown>122 123fmopa za1.s, p1/m, p4/m, z1.s, z30.s124// CHECK-INST: fmopa za1.s, p1/m, p4/m, z1.s, z30.s125// CHECK-ENCODING: [0x21,0x84,0x9e,0x80]126// CHECK-ERROR: instruction requires: sme127// CHECK-UNKNOWN: 809e8421 <unknown>128 129fmopa za0.s, p5/m, p2/m, z19.s, z20.s130// CHECK-INST: fmopa za0.s, p5/m, p2/m, z19.s, z20.s131// CHECK-ENCODING: [0x60,0x56,0x94,0x80]132// CHECK-ERROR: instruction requires: sme133// CHECK-UNKNOWN: 80945660 <unknown>134 135fmopa za0.s, p6/m, p0/m, z12.s, z2.s136// CHECK-INST: fmopa za0.s, p6/m, p0/m, z12.s, z2.s137// CHECK-ENCODING: [0x80,0x19,0x82,0x80]138// CHECK-ERROR: instruction requires: sme139// CHECK-UNKNOWN: 80821980 <unknown>140 141fmopa za1.s, p2/m, p6/m, z1.s, z26.s142// CHECK-INST: fmopa za1.s, p2/m, p6/m, z1.s, z26.s143// CHECK-ENCODING: [0x21,0xc8,0x9a,0x80]144// CHECK-ERROR: instruction requires: sme145// CHECK-UNKNOWN: 809ac821 <unknown>146 147fmopa za1.s, p2/m, p0/m, z22.s, z30.s148// CHECK-INST: fmopa za1.s, p2/m, p0/m, z22.s, z30.s149// CHECK-ENCODING: [0xc1,0x0a,0x9e,0x80]150// CHECK-ERROR: instruction requires: sme151// CHECK-UNKNOWN: 809e0ac1 <unknown>152 153fmopa za2.s, p5/m, p7/m, z9.s, z1.s154// CHECK-INST: fmopa za2.s, p5/m, p7/m, z9.s, z1.s155// CHECK-ENCODING: [0x22,0xf5,0x81,0x80]156// CHECK-ERROR: instruction requires: sme157// CHECK-UNKNOWN: 8081f522 <unknown>158 159fmopa za3.s, p2/m, p5/m, z12.s, z11.s160// CHECK-INST: fmopa za3.s, p2/m, p5/m, z12.s, z11.s161// CHECK-ENCODING: [0x83,0xa9,0x8b,0x80]162// CHECK-ERROR: instruction requires: sme163// CHECK-UNKNOWN: 808ba983 <unknown>164