brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.1 KiB · 68a50ab Raw
194 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid operand for instruction5 6fcvtzsn z0.b, { z0.b, z1.b }7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction8// CHECK-NEXT: fcvtzsn z0.b, { z0.b, z1.b }9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11fcvtzsn z0.h, { z0.h, z1.h }12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction13// CHECK-NEXT: fcvtzsn z0.h, { z0.h, z1.h }14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16fcvtzsn z0.s, { z0.s, z1.s }17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction18// CHECK-NEXT: fcvtzsn z0.s, { z0.s, z1.s }19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:20 21fcvtzsn z0.b, { z1.h, z2.h }22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types23// CHECK-NEXT: fcvtzsn z0.b, { z1.h, z2.h }24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:25 26// --------------------------------------------------------------------------//27// Negative tests for instructions that are incompatible with movprfx28 29movprfx z0, z730fcvtzsn z0.b, { z2.h, z3.h }31// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov32// CHECK-NEXT: fcvtzsn z0.b, { z2.h, z3.h }33// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:34 35// --------------------------------------------------------------------------//36// Invalid operand for instruction37 38fcvtzun z0.b, { z0.b, z1.b }39// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction40// CHECK-NEXT: fcvtzun z0.b, { z0.b, z1.b }41// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:42 43fcvtzun z0.h, { z0.h, z1.h }44// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction45// CHECK-NEXT: fcvtzun z0.h, { z0.h, z1.h }46// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:47 48fcvtzun z0.s, { z0.s, z1.s }49// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction50// CHECK-NEXT: fcvtzun z0.s, { z0.s, z1.s }51// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:52 53fcvtzun z0.b, { z1.h, z2.h }54// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types55// CHECK-NEXT: fcvtzun z0.b, { z1.h, z2.h }56// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:57 58// --------------------------------------------------------------------------//59// Negative tests for instructions that are incompatible with movprfx60 61movprfx z0, z762fcvtzun z0.b, { z2.h, z3.h }63// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov64// CHECK-NEXT: fcvtzun z0.b, { z2.h, z3.h }65// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:66 67// --------------------------------------------------------------------------//68// Invalid element width69 70scvtf z0.b, z0.b71// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width72// CHECK-NEXT: scvtf z0.b, z0.b73// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:74 75scvtf z0.h, z0.h76// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width77// CHECK-NEXT: scvtf z0.h, z0.h78// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:79 80scvtf z0.s, z0.s81// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width82// CHECK-NEXT: scvtf z0.s, z0.s83// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:84 85scvtf z0.d, z0.d86// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width87// CHECK-NEXT: scvtf z0.d, z0.d88// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:89 90// --------------------------------------------------------------------------//91// Negative tests for instructions that are incompatible with movprfx92 93movprfx z0, z794scvtf z0.h, z1.b95// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov96// CHECK-NEXT: scvtf z0.h, z1.b97// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:98 99// --------------------------------------------------------------------------//100// Invalid element width101 102scvtflt z0.b, z0.b103// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width104// CHECK-NEXT: scvtflt z0.b, z0.b105// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:106 107scvtflt z0.h, z0.h108// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width109// CHECK-NEXT: scvtflt z0.h, z0.h110// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:111 112scvtflt z0.s, z0.s113// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width114// CHECK-NEXT: scvtflt z0.s, z0.s115// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:116 117scvtflt z0.d, z0.d118// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width119// CHECK-NEXT: scvtflt z0.d, z0.d120// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:121 122// --------------------------------------------------------------------------//123// Negative tests for instructions that are incompatible with movprfx124 125movprfx z0, z7126scvtflt z0.h, z1.b127// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov128// CHECK-NEXT: scvtflt z0.h, z1.b129// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:130 131// --------------------------------------------------------------------------//132// Invalid element width133 134ucvtf z0.b, z0.b135// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width136// CHECK-NEXT: ucvtf z0.b, z0.b137// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:138 139ucvtf z0.h, z0.h140// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width141// CHECK-NEXT: ucvtf z0.h, z0.h142// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:143 144ucvtf z0.s, z0.s145// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width146// CHECK-NEXT: ucvtf z0.s, z0.s147// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:148 149ucvtf z0.d, z0.d150// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width151// CHECK-NEXT: ucvtf z0.d, z0.d152// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:153 154// --------------------------------------------------------------------------//155// Negative tests for instructions that are incompatible with movprfx156 157movprfx z0, z7158ucvtf z0.h, z1.b159// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov160// CHECK-NEXT: ucvtf z0.h, z1.b161// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:162 163// --------------------------------------------------------------------------//164// Invalid element width165 166ucvtflt z0.b, z0.b167// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width168// CHECK-NEXT: ucvtflt z0.b, z0.b169// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:170 171ucvtflt z0.h, z0.h172// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width173// CHECK-NEXT: ucvtflt z0.h, z0.h174// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:175 176ucvtflt z0.s, z0.s177// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width178// CHECK-NEXT: ucvtflt z0.s, z0.s179// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:180 181ucvtflt z0.d, z0.d182// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width183// CHECK-NEXT: ucvtflt z0.d, z0.d184// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:185 186// --------------------------------------------------------------------------//187// Negative tests for instructions that are incompatible with movprfx188 189movprfx z0, z7190ucvtflt z0.h, z1.b191// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov192// CHECK-NEXT: ucvtflt z0.h, z1.b193// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:194