brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.2 KiB · 31c87cf Raw
256 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 < %s \2// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST3// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p3 < %s \4// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST5// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \6// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR7// 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-INST9// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2p3 < %s \10// RUN:        | llvm-objdump -d --mattr=-sve2p3 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN11// Disassemble encoding and check the re-encoding (-show-encoding) matches.12// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 < %s \13// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \14// RUN:        | llvm-mc -triple=aarch64 -mattr=+sve2p3 -disassemble -show-encoding \15// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST16 17// -----------------------------------------------------------------18// Signed saturating rounding shift right narrow by immediate and interleave19 20sqrshrn z0.b, { z0.h, z1.h }, #121// CHECK-INST: sqrshrn z0.b, { z0.h, z1.h }, #122// CHECK-ENCODING: encoding: [0x00,0x28,0xaf,0x45]23// CHECK-ERROR: instruction requires: sme2p3 or sve2p324// CHECK-UNKNOWN: 45af2800 <unknown>25 26sqrshrn z31.b, { z30.h, z31.h }, #127// CHECK-INST: sqrshrn z31.b, { z30.h, z31.h }, #128// CHECK-ENCODING: encoding: [0xdf,0x2b,0xaf,0x45]29// CHECK-ERROR: instruction requires: sme2p3 or sve2p330// CHECK-UNKNOWN: 45af2bdf <unknown>31 32sqrshrn z0.b, { z0.h, z1.h }, #833// CHECK-INST: sqrshrn z0.b, { z0.h, z1.h }, #834// CHECK-ENCODING: encoding: [0x00,0x28,0xa8,0x45]35// CHECK-ERROR: instruction requires: sme2p3 or sve2p336// CHECK-UNKNOWN: 45a82800 <unknown>37 38sqrshrn z31.b, { z30.h, z31.h }, #339// CHECK-INST: sqrshrn z31.b, { z30.h, z31.h }, #340// CHECK-ENCODING: encoding: [0xdf,0x2b,0xad,0x45]41// CHECK-ERROR: instruction requires: sme2p3 or sve2p342// CHECK-UNKNOWN: 45ad2bdf <unknown>43 44// -----------------------------------------------------------------45// Signed saturating rounding shift right unsigned narrow by immediate and interleave46 47sqrshrun z0.b, { z0.h, z1.h }, #148// CHECK-INST: sqrshrun z0.b, { z0.h, z1.h }, #149// CHECK-ENCODING: encoding: [0x00,0x08,0xaf,0x45]50// CHECK-ERROR: instruction requires: sme2p3 or sve2p351// CHECK-UNKNOWN: 45af0800 <unknown>52 53sqrshrun z31.b, { z30.h, z31.h }, #154// CHECK-INST: sqrshrun z31.b, { z30.h, z31.h }, #155// CHECK-ENCODING: encoding: [0xdf,0x0b,0xaf,0x45]56// CHECK-ERROR: instruction requires: sme2p3 or sve2p357// CHECK-UNKNOWN: 45af0bdf <unknown>58 59sqrshrun z0.b, { z0.h, z1.h }, #860// CHECK-INST: sqrshrun z0.b, { z0.h, z1.h }, #861// CHECK-ENCODING: encoding: [0x00,0x08,0xa8,0x45]62// CHECK-ERROR: instruction requires: sme2p3 or sve2p363// CHECK-UNKNOWN: 45a80800 <unknown>64 65sqrshrun z31.b, { z30.h, z31.h }, #866// CHECK-INST: sqrshrun z31.b, { z30.h, z31.h }, #867// CHECK-ENCODING: encoding: [0xdf,0x0b,0xa8,0x45]68// CHECK-ERROR: instruction requires: sme2p3 or sve2p369// CHECK-UNKNOWN: 45a80bdf <unknown>70 71// -----------------------------------------------------------------72// Signed saturating shift right narrow by immediate and interleave73 74sqshrn z21.b, { z30.h, z31.h }, #175// CHECK-INST: sqshrn z21.b, { z30.h, z31.h }, #176// CHECK-ENCODING: encoding: [0xd5,0x03,0xaf,0x45]77// CHECK-ERROR: instruction requires: sme2p3 or sve2p378// CHECK-UNKNOWN: 45af03d5 <unknown>79 80sqshrn z31.b, { z30.h, z31.h }, #181// CHECK-INST: sqshrn z31.b, { z30.h, z31.h }, #182// CHECK-ENCODING: encoding: [0xdf,0x03,0xaf,0x45]83// CHECK-ERROR: instruction requires: sme2p3 or sve2p384// CHECK-UNKNOWN: 45af03df <unknown>85 86sqshrn z10.b, { z0.h, z1.h }, #887// CHECK-INST: sqshrn z10.b, { z0.h, z1.h }, #888// CHECK-ENCODING: encoding: [0x0a,0x00,0xa8,0x45]89// CHECK-ERROR: instruction requires: sme2p3 or sve2p390// CHECK-UNKNOWN: 45a8000a <unknown>91 92sqshrn z31.b, { z30.h, z31.h }, #893// CHECK-INST: sqshrn z31.b, { z30.h, z31.h }, #894// CHECK-ENCODING: encoding: [0xdf,0x03,0xa8,0x45]95// CHECK-ERROR: instruction requires: sme2p3 or sve2p396// CHECK-UNKNOWN: 45a803df <unknown>97 98sqshrn z0.b, { z0.h, z1.h }, #199// CHECK-INST: sqshrn z0.b, { z0.h, z1.h }, #1100// CHECK-ENCODING: encoding: [0x00,0x00,0xaf,0x45]101// CHECK-ERROR: instruction requires: sme2p3 or sve2p3102// CHECK-UNKNOWN: 45af0000 <unknown>103 104sqshrn z0.h, { z0.s, z1.s }, #1105// CHECK-INST: sqshrn z0.h, { z0.s, z1.s }, #1106// CHECK-ENCODING: encoding: [0x00,0x00,0xbf,0x45]107// CHECK-ERROR: instruction requires: sme2p3 or sve2p3108// CHECK-UNKNOWN: 45bf0000 <unknown>109 110sqshrn z31.h, { z30.s, z31.s }, #1111// CHECK-INST: sqshrn z31.h, { z30.s, z31.s }, #1112// CHECK-ENCODING: encoding: [0xdf,0x03,0xbf,0x45]113// CHECK-ERROR: instruction requires: sme2p3 or sve2p3114// CHECK-UNKNOWN: 45bf03df <unknown>115 116sqshrn z0.h, { z0.s, z1.s }, #16117// CHECK-INST: sqshrn z0.h, { z0.s, z1.s }, #16118// CHECK-ENCODING: encoding: [0x00,0x00,0xb0,0x45]119// CHECK-ERROR: instruction requires: sme2p3 or sve2p3120// CHECK-UNKNOWN: 45b00000 <unknown>121 122sqshrn z31.h, { z30.s, z31.s }, #16123// CHECK-INST: sqshrn z31.h, { z30.s, z31.s }, #16124// CHECK-ENCODING: encoding: [0xdf,0x03,0xb0,0x45]125// CHECK-ERROR: instruction requires: sme2p3 or sve2p3126// CHECK-UNKNOWN: 45b003df <unknown>127 128// -----------------------------------------------------------------129// Signed saturating shift right unsigned narrow by immediate and interleave130 131sqshrun z0.b, { z0.h, z1.h }, #1132// CHECK-INST: sqshrun z0.b, { z0.h, z1.h }, #1133// CHECK-ENCODING: encoding: [0x00,0x20,0xaf,0x45]134// CHECK-ERROR: instruction requires: sme2p3 or sve2p3135// CHECK-UNKNOWN: 45af2000 <unknown>136 137sqshrun z31.b, { z30.h, z31.h }, #1138// CHECK-INST: sqshrun z31.b, { z30.h, z31.h }, #1139// CHECK-ENCODING: encoding: [0xdf,0x23,0xaf,0x45]140// CHECK-ERROR: instruction requires: sme2p3 or sve2p3141// CHECK-UNKNOWN: 45af23df <unknown>142 143sqshrun z0.b, { z0.h, z1.h }, #8144// CHECK-INST: sqshrun z0.b, { z0.h, z1.h }, #8145// CHECK-ENCODING: encoding: [0x00,0x20,0xa8,0x45]146// CHECK-ERROR: instruction requires: sme2p3 or sve2p3147// CHECK-UNKNOWN: 45a82000 <unknown>148 149sqshrun z31.b, { z30.h, z31.h }, #8150// CHECK-INST: sqshrun z31.b, { z30.h, z31.h }, #8151// CHECK-ENCODING: encoding: [0xdf,0x23,0xa8,0x45]152// CHECK-ERROR: instruction requires: sme2p3 or sve2p3153// CHECK-UNKNOWN: 45a823df <unknown>154 155sqshrun z0.h, { z0.s, z1.s }, #1156// CHECK-INST: sqshrun z0.h, { z0.s, z1.s }, #1157// CHECK-ENCODING: encoding: [0x00,0x20,0xbf,0x45]158// CHECK-ERROR: instruction requires: sme2p3 or sve2p3159// CHECK-UNKNOWN: 45bf2000 <unknown>160 161sqshrun z31.h, { z30.s, z31.s }, #1162// CHECK-INST: sqshrun z31.h, { z30.s, z31.s }, #1163// CHECK-ENCODING: encoding: [0xdf,0x23,0xbf,0x45]164// CHECK-ERROR: instruction requires: sme2p3 or sve2p3165// CHECK-UNKNOWN: 45bf23df <unknown>166 167sqshrun z0.h, { z0.s, z1.s }, #16168// CHECK-INST: sqshrun z0.h, { z0.s, z1.s }, #16169// CHECK-ENCODING: encoding: [0x00,0x20,0xb0,0x45]170// CHECK-ERROR: instruction requires: sme2p3 or sve2p3171// CHECK-UNKNOWN: 45b02000 <unknown>172 173sqshrun z31.h, { z30.s, z31.s }, #16174// CHECK-INST: sqshrun z31.h, { z30.s, z31.s }, #16175// CHECK-ENCODING: encoding: [0xdf,0x23,0xb0,0x45]176// CHECK-ERROR: instruction requires: sme2p3 or sve2p3177// CHECK-UNKNOWN: 45b023df <unknown>178 179// -----------------------------------------------------------------180// Unsigned saturating rounding shift right narrow by immediate and interleave181 182uqrshrn z0.b, { z0.h, z1.h }, #1183// CHECK-INST: uqrshrn z0.b, { z0.h, z1.h }, #1184// CHECK-ENCODING: encoding: [0x00,0x38,0xaf,0x45]185// CHECK-ERROR: instruction requires: sme2p3 or sve2p3186// CHECK-UNKNOWN: 45af3800 <unknown>187 188uqrshrn z31.b, { z30.h, z31.h }, #1189// CHECK-INST: uqrshrn z31.b, { z30.h, z31.h }, #1190// CHECK-ENCODING: encoding: [0xdf,0x3b,0xaf,0x45]191// CHECK-ERROR: instruction requires: sme2p3 or sve2p3192// CHECK-UNKNOWN: 45af3bdf <unknown>193 194uqrshrn z0.b, { z0.h, z1.h }, #8195// CHECK-INST: uqrshrn z0.b, { z0.h, z1.h }, #8196// CHECK-ENCODING: encoding: [0x00,0x38,0xa8,0x45]197// CHECK-ERROR: instruction requires: sme2p3 or sve2p3198// CHECK-UNKNOWN: 45a83800 <unknown>199 200uqrshrn z31.b, { z30.h, z31.h }, #8201// CHECK-INST: uqrshrn z31.b, { z30.h, z31.h }, #8202// CHECK-ENCODING: encoding: [0xdf,0x3b,0xa8,0x45]203// CHECK-ERROR: instruction requires: sme2p3 or sve2p3204// CHECK-UNKNOWN: 45a83bdf <unknown>205 206// -----------------------------------------------------------------207// Unsigned saturating shift right narrow by immediate and interleave208 209uqshrn z0.b, { z0.h, z1.h }, #1210// CHECK-INST: uqshrn z0.b, { z0.h, z1.h }, #1211// CHECK-ENCODING: encoding: [0x00,0x10,0xaf,0x45]212// CHECK-ERROR: instruction requires: sme2p3 or sve2p3213// CHECK-UNKNOWN: 45af1000 <unknown>214 215uqshrn z31.b, { z30.h, z31.h }, #1216// CHECK-INST: uqshrn z31.b, { z30.h, z31.h }, #1217// CHECK-ENCODING: encoding: [0xdf,0x13,0xaf,0x45]218// CHECK-ERROR: instruction requires: sme2p3 or sve2p3219// CHECK-UNKNOWN: 45af13df <unknown>220 221uqshrn z0.b, { z0.h, z1.h }, #8222// CHECK-INST: uqshrn z0.b, { z0.h, z1.h }, #8223// CHECK-ENCODING: encoding: [0x00,0x10,0xa8,0x45]224// CHECK-ERROR: instruction requires: sme2p3 or sve2p3225// CHECK-UNKNOWN: 45a81000 <unknown>226 227uqshrn z31.b, { z30.h, z31.h }, #8228// CHECK-INST: uqshrn z31.b, { z30.h, z31.h }, #8229// CHECK-ENCODING: encoding: [0xdf,0x13,0xa8,0x45]230// CHECK-ERROR: instruction requires: sme2p3 or sve2p3231// CHECK-UNKNOWN: 45a813df <unknown>232 233uqshrn z0.h, { z0.s, z1.s }, #1234// CHECK-INST: uqshrn z0.h, { z0.s, z1.s }, #1235// CHECK-ENCODING: encoding: [0x00,0x10,0xbf,0x45]236// CHECK-ERROR: instruction requires: sme2p3 or sve2p3237// CHECK-UNKNOWN: 45bf1000 <unknown>238 239uqshrn z31.h, { z30.s, z31.s }, #1240// CHECK-INST: uqshrn z31.h, { z30.s, z31.s }, #1241// CHECK-ENCODING: encoding: [0xdf,0x13,0xbf,0x45]242// CHECK-ERROR: instruction requires: sme2p3 or sve2p3243// CHECK-UNKNOWN: 45bf13df <unknown>244 245uqshrn z0.h, { z0.s, z1.s }, #16246// CHECK-INST: uqshrn z0.h, { z0.s, z1.s }, #16247// CHECK-ENCODING: encoding: [0x00,0x10,0xb0,0x45]248// CHECK-ERROR: instruction requires: sme2p3 or sve2p3249// CHECK-UNKNOWN: 45b01000 <unknown>250 251uqshrn z31.h, { z30.s, z31.s }, #16252// CHECK-INST: uqshrn z31.h, { z30.s, z31.s }, #16253// CHECK-ENCODING: encoding: [0xdf,0x13,0xb0,0x45]254// CHECK-ERROR: instruction requires: sme2p3 or sve2p3255// CHECK-UNKNOWN: 45b013df <unknown>256