114 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %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=+sme2,+sve-b16b16 < %s \6// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \8// RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN9// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \10// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \11// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \12// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST13 14 15bfminnm {z0.h, z1.h}, {z0.h, z1.h}, z0.h // 11000001-00100000-10100001-0010000116// CHECK-INST: bfminnm { z0.h, z1.h }, { z0.h, z1.h }, z0.h17// CHECK-ENCODING: [0x21,0xa1,0x20,0xc1]18// CHECK-ERROR: instruction requires: sme2 sve-b16b1619// CHECK-UNKNOWN: c120a121 <unknown>20 21bfminnm {z20.h, z21.h}, {z20.h, z21.h}, z5.h // 11000001-00100101-10100001-0011010122// CHECK-INST: bfminnm { z20.h, z21.h }, { z20.h, z21.h }, z5.h23// CHECK-ENCODING: [0x35,0xa1,0x25,0xc1]24// CHECK-ERROR: instruction requires: sme2 sve-b16b1625// CHECK-UNKNOWN: c125a135 <unknown>26 27bfminnm {z22.h, z23.h}, {z22.h, z23.h}, z8.h // 11000001-00101000-10100001-0011011128// CHECK-INST: bfminnm { z22.h, z23.h }, { z22.h, z23.h }, z8.h29// CHECK-ENCODING: [0x37,0xa1,0x28,0xc1]30// CHECK-ERROR: instruction requires: sme2 sve-b16b1631// CHECK-UNKNOWN: c128a137 <unknown>32 33bfminnm {z30.h, z31.h}, {z30.h, z31.h}, z15.h // 11000001-00101111-10100001-0011111134// CHECK-INST: bfminnm { z30.h, z31.h }, { z30.h, z31.h }, z15.h35// CHECK-ENCODING: [0x3f,0xa1,0x2f,0xc1]36// CHECK-ERROR: instruction requires: sme2 sve-b16b1637// CHECK-UNKNOWN: c12fa13f <unknown>38 39 40bfminnm {z0.h, z1.h}, {z0.h, z1.h}, {z0.h, z1.h} // 11000001-00100000-10110001-0010000141// CHECK-INST: bfminnm { z0.h, z1.h }, { z0.h, z1.h }, { z0.h, z1.h }42// CHECK-ENCODING: [0x21,0xb1,0x20,0xc1]43// CHECK-ERROR: instruction requires: sme2 sve-b16b1644// CHECK-UNKNOWN: c120b121 <unknown>45 46bfminnm {z20.h, z21.h}, {z20.h, z21.h}, {z20.h, z21.h} // 11000001-00110100-10110001-0011010147// CHECK-INST: bfminnm { z20.h, z21.h }, { z20.h, z21.h }, { z20.h, z21.h }48// CHECK-ENCODING: [0x35,0xb1,0x34,0xc1]49// CHECK-ERROR: instruction requires: sme2 sve-b16b1650// CHECK-UNKNOWN: c134b135 <unknown>51 52bfminnm {z22.h, z23.h}, {z22.h, z23.h}, {z8.h, z9.h} // 11000001-00101000-10110001-0011011153// CHECK-INST: bfminnm { z22.h, z23.h }, { z22.h, z23.h }, { z8.h, z9.h }54// CHECK-ENCODING: [0x37,0xb1,0x28,0xc1]55// CHECK-ERROR: instruction requires: sme2 sve-b16b1656// CHECK-UNKNOWN: c128b137 <unknown>57 58bfminnm {z30.h, z31.h}, {z30.h, z31.h}, {z30.h, z31.h} // 11000001-00111110-10110001-0011111159// CHECK-INST: bfminnm { z30.h, z31.h }, { z30.h, z31.h }, { z30.h, z31.h }60// CHECK-ENCODING: [0x3f,0xb1,0x3e,0xc1]61// CHECK-ERROR: instruction requires: sme2 sve-b16b1662// CHECK-UNKNOWN: c13eb13f <unknown>63 64 65bfminnm {z0.h - z3.h}, {z0.h - z3.h}, z0.h // 11000001-00100000-10101001-0010000166// CHECK-INST: bfminnm { z0.h - z3.h }, { z0.h - z3.h }, z0.h67// CHECK-ENCODING: [0x21,0xa9,0x20,0xc1]68// CHECK-ERROR: instruction requires: sme2 sve-b16b1669// CHECK-UNKNOWN: c120a921 <unknown>70 71bfminnm {z20.h - z23.h}, {z20.h - z23.h}, z5.h // 11000001-00100101-10101001-0011010172// CHECK-INST: bfminnm { z20.h - z23.h }, { z20.h - z23.h }, z5.h73// CHECK-ENCODING: [0x35,0xa9,0x25,0xc1]74// CHECK-ERROR: instruction requires: sme2 sve-b16b1675// CHECK-UNKNOWN: c125a935 <unknown>76 77bfminnm {z20.h - z23.h}, {z20.h - z23.h}, z8.h // 11000001-00101000-10101001-0011010178// CHECK-INST: bfminnm { z20.h - z23.h }, { z20.h - z23.h }, z8.h79// CHECK-ENCODING: [0x35,0xa9,0x28,0xc1]80// CHECK-ERROR: instruction requires: sme2 sve-b16b1681// CHECK-UNKNOWN: c128a935 <unknown>82 83bfminnm {z28.h - z31.h}, {z28.h - z31.h}, z15.h // 11000001-00101111-10101001-0011110184// CHECK-INST: bfminnm { z28.h - z31.h }, { z28.h - z31.h }, z15.h85// CHECK-ENCODING: [0x3d,0xa9,0x2f,0xc1]86// CHECK-ERROR: instruction requires: sme2 sve-b16b1687// CHECK-UNKNOWN: c12fa93d <unknown>88 89 90bfminnm {z0.h - z3.h}, {z0.h - z3.h}, {z0.h - z3.h} // 11000001-00100000-10111001-0010000191// CHECK-INST: bfminnm { z0.h - z3.h }, { z0.h - z3.h }, { z0.h - z3.h }92// CHECK-ENCODING: [0x21,0xb9,0x20,0xc1]93// CHECK-ERROR: instruction requires: sme2 sve-b16b1694// CHECK-UNKNOWN: c120b921 <unknown>95 96bfminnm {z20.h - z23.h}, {z20.h - z23.h}, {z20.h - z23.h} // 11000001-00110100-10111001-0011010197// CHECK-INST: bfminnm { z20.h - z23.h }, { z20.h - z23.h }, { z20.h - z23.h }98// CHECK-ENCODING: [0x35,0xb9,0x34,0xc1]99// CHECK-ERROR: instruction requires: sme2 sve-b16b16100// CHECK-UNKNOWN: c134b935 <unknown>101 102bfminnm {z20.h - z23.h}, {z20.h - z23.h}, {z8.h - z11.h} // 11000001-00101000-10111001-00110101103// CHECK-INST: bfminnm { z20.h - z23.h }, { z20.h - z23.h }, { z8.h - z11.h }104// CHECK-ENCODING: [0x35,0xb9,0x28,0xc1]105// CHECK-ERROR: instruction requires: sme2 sve-b16b16106// CHECK-UNKNOWN: c128b935 <unknown>107 108bfminnm {z28.h - z31.h}, {z28.h - z31.h}, {z28.h - z31.h} // 11000001-00111100-10111001-00111101109// CHECK-INST: bfminnm { z28.h - z31.h }, { z28.h - z31.h }, { z28.h - z31.h }110// CHECK-ENCODING: [0x3d,0xb9,0x3c,0xc1]111// CHECK-ERROR: instruction requires: sme2 sve-b16b16112// CHECK-UNKNOWN: c13cb93d <unknown>113 114