46 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2 2>&1 < %s| FileCheck %s2 3 4// ------------------------------------------------------------------------- //5// Invalid element width6 7pmullt z0.b, z0.b, z0.b8// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width9// CHECK-NEXT: pmullt z0.b, z0.b, z0.b10// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:11 12pmullt z0.h, z0.h, z0.h13// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width14// CHECK-NEXT: pmullt z0.h, z0.h, z0.h15// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:16 17pmullt z0.s, z0.s, z0.s18// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width19// CHECK-NEXT: pmullt z0.s, z0.s, z0.s20// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:21 22pmullt z0.d, z0.d, z0.d23// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width24// CHECK-NEXT: pmullt z0.d, z0.d, z0.d25// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:26 27pmullt z0.q, z0.q, z0.q28// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction29// CHECK-NEXT: pmullt z0.q, z0.q, z0.q30// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:31 32// --------------------------------------------------------------------------//33// Negative tests for instructions that are incompatible with movprfx34 35movprfx z31.d, p0/z, z6.d36pmullt z0.d, z1.s, z2.s37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov38// CHECK-NEXT: pmullt z0.d, z1.s, z2.s39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:40 41movprfx z31, z642pmullt z0.d, z1.s, z2.s43// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov44// CHECK-NEXT: pmullt z0.d, z1.s, z2.s45// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:46