brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · eb0c32c Raw
149 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// 8-bit17 18psel    p0, p0, p0.b[w12, 0]19// CHECK-INST: psel    p0, p0, p0.b[w12, 0]20// CHECK-ENCODING: [0x00,0x40,0x24,0x25]21// CHECK-ERROR: instruction requires: sme22// CHECK-UNKNOWN: 25244000 <unknown>23 24psel    p5, p5, p10.b[w13, 6]25// CHECK-INST: psel    p5, p5, p10.b[w13, 6]26// CHECK-ENCODING: [0x45,0x55,0x75,0x25]27// CHECK-ERROR: instruction requires: sme28// CHECK-UNKNOWN: 25755545 <unknown>29 30psel    p7, p11, p13.b[w12, 5]31// CHECK-INST: psel    p7, p11, p13.b[w12, 5]32// CHECK-ENCODING: [0xa7,0x6d,0x6c,0x25]33// CHECK-ERROR: instruction requires: sme34// CHECK-UNKNOWN: 256c6da7 <unknown>35 36psel    p15, p15, p15.b[w15, 15]37// CHECK-INST: psel    p15, p15, p15.b[w15, 15]38// CHECK-ENCODING: [0xef,0x7d,0xff,0x25]39// CHECK-ERROR: instruction requires: sme40// CHECK-UNKNOWN: 25ff7def <unknown>41 42// --------------------------------------------------------------------------//43// 16-bit44 45psel    p0, p0, p0.h[w12, 0]46// CHECK-INST: psel    p0, p0, p0.h[w12, 0]47// CHECK-ENCODING: [0x00,0x40,0x28,0x25]48// CHECK-ERROR: instruction requires: sme49// CHECK-UNKNOWN: 25284000 <unknown>50 51psel    p5, p5, p10.h[w13, 3]52// CHECK-INST: psel    p5, p5, p10.h[w13, 3]53// CHECK-ENCODING: [0x45,0x55,0x79,0x25]54// CHECK-ERROR: instruction requires: sme55// CHECK-UNKNOWN: 25795545 <unknown>56 57psel    p7, p11, p13.h[w12, 2]58// CHECK-INST: psel    p7, p11, p13.h[w12, 2]59// CHECK-ENCODING: [0xa7,0x6d,0x68,0x25]60// CHECK-ERROR: instruction requires: sme61// CHECK-UNKNOWN: 25686da7 <unknown>62 63psel    p15, p15, p15.h[w15, 7]64// CHECK-INST: psel    p15, p15, p15.h[w15, 7]65// CHECK-ENCODING: [0xef,0x7d,0xfb,0x25]66// CHECK-ERROR: instruction requires: sme67// CHECK-UNKNOWN: 25fb7def <unknown>68 69// --------------------------------------------------------------------------//70// 32-bit71 72psel    p0, p0, p0.s[w12, 0]73// CHECK-INST: psel    p0, p0, p0.s[w12, 0]74// CHECK-ENCODING: [0x00,0x40,0x30,0x25]75// CHECK-ERROR: instruction requires: sme76// CHECK-UNKNOWN: 25304000 <unknown>77 78psel    p5, p5, p10.s[w13, 1]79// CHECK-INST: psel    p5, p5, p10.s[w13, 1]80// CHECK-ENCODING: [0x45,0x55,0x71,0x25]81// CHECK-ERROR: instruction requires: sme82// CHECK-UNKNOWN: 25715545 <unknown>83 84psel    p7, p11, p13.s[w12, 1]85// CHECK-INST: psel    p7, p11, p13.s[w12, 1]86// CHECK-ENCODING: [0xa7,0x6d,0x70,0x25]87// CHECK-ERROR: instruction requires: sme88// CHECK-UNKNOWN: 25706da7 <unknown>89 90psel    p15, p15, p15.s[w15, 3]91// CHECK-INST: psel    p15, p15, p15.s[w15, 3]92// CHECK-ENCODING: [0xef,0x7d,0xf3,0x25]93// CHECK-ERROR: instruction requires: sme94// CHECK-UNKNOWN: 25f37def <unknown>95 96// --------------------------------------------------------------------------//97// 64-bit98 99psel    p0, p0, p0.d[w12, 0]100// CHECK-INST: psel    p0, p0, p0.d[w12, 0]101// CHECK-ENCODING: [0x00,0x40,0x60,0x25]102// CHECK-ERROR: instruction requires: sme103// CHECK-UNKNOWN: 25604000 <unknown>104 105psel    p5, p5, p10.d[w13, 0]106// CHECK-INST: psel    p5, p5, p10.d[w13, 0]107// CHECK-ENCODING: [0x45,0x55,0x61,0x25]108// CHECK-ERROR: instruction requires: sme109// CHECK-UNKNOWN: 25615545 <unknown>110 111psel    p7, p11, p13.d[w12, 0]112// CHECK-INST: psel    p7, p11, p13.d[w12, 0]113// CHECK-ENCODING: [0xa7,0x6d,0x60,0x25]114// CHECK-ERROR: instruction requires: sme115// CHECK-UNKNOWN: 25606da7 <unknown>116 117psel    p15, p15, p15.d[w15, 1]118// CHECK-INST: psel    p15, p15, p15.d[w15, 1]119// CHECK-ENCODING: [0xef,0x7d,0xe3,0x25]120// CHECK-ERROR: instruction requires: sme121// CHECK-UNKNOWN: 25e37def <unknown>122 123// --------------------------------------------------------------------------//124// Also support with predicate-as-counter125 126psel    pn15, pn15, p15.b[w15, 15]127// CHECK-INST: psel    p15, p15, p15.b[w15, 15]128// CHECK-ENCODING: [0xef,0x7d,0xff,0x25]129// CHECK-ERROR: instruction requires: sme130// CHECK-UNKNOWN: 25ff7def <unknown>131 132psel    pn15, pn15, p15.h[w15, 7]133// CHECK-INST: psel    p15, p15, p15.h[w15, 7]134// CHECK-ENCODING: [0xef,0x7d,0xfb,0x25]135// CHECK-ERROR: instruction requires: sme136// CHECK-UNKNOWN: 25fb7def <unknown>137 138psel    pn15, pn15, p15.s[w15, 3]139// CHECK-INST: psel    p15, p15, p15.s[w15, 3]140// CHECK-ENCODING: [0xef,0x7d,0xf3,0x25]141// CHECK-ERROR: instruction requires: sme142// CHECK-UNKNOWN: 25f37def <unknown>143 144psel    pn15, pn15, p15.d[w15, 1]145// CHECK-INST: psel    p15, p15, p15.d[w15, 1]146// CHECK-ENCODING: [0xef,0x7d,0xe3,0x25]147// CHECK-ERROR: instruction requires: sme148// CHECK-UNKNOWN: 25e37def <unknown>149