brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.9 KiB · b44039f Raw
250 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p2 2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid element width5abs     z31.b, p7/z, z31.d6// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width7// CHECK-NEXT: abs     z31.b, p7/z, z31.d8// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:9 10cls     z31.d, p7/z, z31.s11// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width12// CHECK-NEXT: cls     z31.d, p7/z, z31.s13// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:14 15clz     z31.d, p7/z, z31.s16// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width17// CHECK-NEXT: clz     z31.d, p7/z, z31.s18// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:19 20cnot     z31.b, p7/z, z31.h21// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width22// CHECK-NEXT: cnot     z31.b, p7/z, z31.h23// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:24 25cnt     z31.d, p7/z, z31.s26// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width27// CHECK-NEXT: cnt     z31.d, p7/z, z31.s28// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:29 30fabs     z31.h, p7/z, z31.d31// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width32// CHECK-NEXT: fabs     z31.h, p7/z, z31.d33// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:34 35fneg     z31.d, p7/z, z31.s36// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width37// CHECK-NEXT: fneg     z31.d, p7/z, z31.s38// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:39 40neg     z31.s, p7/z, z31.d41// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width42// CHECK-NEXT: neg     z31.s, p7/z, z31.d43// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:44 45not     z31.b, p7/z, z31.h46// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width47// CHECK-NEXT: not     z31.b, p7/z, z31.h48// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:49 50sxtb     z31.h, p7/z, z31.s51// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width52// CHECK-NEXT: sxtb     z31.h, p7/z, z31.s53// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:54 55sxth     z31.s, p7/z, z31.d56// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width57// CHECK-NEXT: sxth     z31.s, p7/z, z31.d58// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:59 60sxtw     z31.d, p7/z, z31.h61// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width62// CHECK-NEXT: sxtw     z31.d, p7/z, z31.h63// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:64 65uxtb     z31.s, p7/z, z31.d66// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width67// CHECK-NEXT: uxtb     z31.s, p7/z, z31.d68// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:69 70uxth     z31.d, p7/z, z31.s71// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width72// CHECK-NEXT: uxth     z31.d, p7/z, z31.s73// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:74 75uxtw     z31.d, p7/z, z31.s76// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width77// CHECK-NEXT: uxtw     z31.d, p7/z, z31.s78// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:79 80// ------------------------------------------------------------------------- //81// Invalid predicate82 83abs     z31.s, p8/z, z31.s84// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)85// CHECK-NEXT: abs     z31.s, p8/z, z31.s86// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:87 88cls     z31.b, p8/z, z31.b89// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)90// CHECK-NEXT: cls     z31.b, p8/z, z31.b91// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:92 93clz     z31.b, p8/z, z31.b94// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)95// CHECK-NEXT: clz     z31.b, p8/z, z31.b96// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:97 98cnot     z31.b, p8/z, z31.b99// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)100// CHECK-NEXT: cnot     z31.b, p8/z, z31.b101// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:102 103cnt     z31.b, p8/z, z31.b104// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)105// CHECK-NEXT: cnt     z31.b, p8/z, z31.b106// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:107 108fabs    z31.h, p8/z, z31.h109// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)110// CHECK-NEXT: fabs    z31.h, p8/z, z31.h111// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:112 113fneg    z31.h, p8/z, z31.h114// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)115// CHECK-NEXT: fneg    z31.h, p8/z, z31.h116// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:117 118neg     z31.s, p8/z, z31.s119// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)120// CHECK-NEXT: neg     z31.s, p8/z, z31.s121// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:122 123not     z31.b, p8/z, z31.b124// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)125// CHECK-NEXT: not     z31.b, p8/z, z31.b126// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:127 128sxtb     z31.s, p8/z, z31.s129// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)130// CHECK-NEXT: sxtb     z31.s, p8/z, z31.s131// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:132 133sxth z0.s, p8/z, z0.s134// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)135// CHECK-NEXT: sxth z0.s, p8/z, z0.s136// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:137 138sxtw z0.d, p8/z, z0.d139// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)140// CHECK-NEXT: sxtw z0.d, p8/z, z0.d141// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:142 143uxtb     z31.s, p8/z, z31.s144// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)145// CHECK-NEXT: uxtb     z31.s, p8/z, z31.s146// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:147 148uxth z0.s, p8/z, z0.s149// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)150// CHECK-NEXT: uxth z0.s, p8/z, z0.s151// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:152 153uxtw z0.d, p8/z, z0.d154// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)155// CHECK-NEXT: uxtw z0.d, p8/z, z0.d156// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:157 158// --------------------------------------------------------------------------//159// Negative tests for instructions that are incompatible with movprfx160 161movprfx z0.d, p0/z, z7.d162abs z0.d, p0/z, z3.d163// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov164// CHECK-NEXT: abs z0.d, p0/z, z3.d165// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:166 167movprfx z0, z7168cls z0.h, p0/z, z3.h169// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov170// CHECK-NEXT: cls z0.h, p0/z, z3.h171// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:172 173movprfx z0.h, p0/z, z7.h174clz z0.h, p0/z, z3.h175// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov176// CHECK-NEXT: clz z0.h, p0/z, z3.h177// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:178 179movprfx z0, z7180cnot z0.h, p0/z, z3.h181// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov182// CHECK-NEXT: cnot z0.h, p0/z, z3.h183// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:184 185movprfx z0.h, p0/z, z7.h186cnt z0.h, p0/z, z3.h187// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov188// CHECK-NEXT: cnt z0.h, p0/z, z3.h189// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:190 191movprfx z0, z7192fabs z0.h, p0/z, z3.h193// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov194// CHECK-NEXT: fabs z0.h, p0/z, z3.h195// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:196 197movprfx z0.h, p0/z, z7.h198fneg z0.h, p0/z, z3.h199// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov200// CHECK-NEXT: fneg z0.h, p0/z, z3.h201// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:202 203movprfx z0, z7204neg z0.d, p0/z, z3.d205// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov206// CHECK-NEXT: neg z0.d, p0/z, z3.d207// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:208 209movprfx z0.h, p0/z, z7.h210not z0.h, p0/z, z3.h211// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov212// CHECK-NEXT: not z0.h, p0/z, z3.h213// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:214 215movprfx z0, z7216sxtb z0.h, p0/z, z3.h217// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov218// CHECK-NEXT: sxtb z0.h, p0/z, z3.h219// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:220 221movprfx z0.s, p0/z, z7.s222sxth z0.s, p0/z, z3.s223// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov224// CHECK-NEXT: sxth z0.s, p0/z, z3.s225// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:226 227movprfx z0, z7228sxtw z0.d, p0/z, z3.d229// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov230// CHECK-NEXT: sxtw z0.d, p0/z, z3.d231// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:232 233movprfx z0, z7234uxtb z0.h, p0/z, z3.h235// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov236// CHECK-NEXT: uxtb z0.h, p0/z, z3.h237// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:238 239movprfx z0.s, p0/z, z7.s240uxth z0.s, p0/z, z3.s241// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov242// CHECK-NEXT: uxth z0.s, p0/z, z3.s243// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:244 245movprfx z0, z7246uxtw z0.d, p0/z, z3.d247// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov248// CHECK-NEXT: uxtw z0.d, p0/z, z3.d249// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:250