40 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid vector lane index5 6udot z0.s, z0.h, z0.h[8]7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].8// CHECK-NEXT: udot z0.s, z0.h, z0.h[8]9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11udot z0.s, z0.h, z0.h[-1]12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].13// CHECK-NEXT: udot z0.s, z0.h, z0.h[-1]14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16movprfx z0, z3117udot z0.s, z0.h, z0.h[8]18// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].19// CHECK-NEXT: udot z0.s, z0.h, z0.h[8]20// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:21 22movprfx z0, z3123udot z0.s, z0.h, z0.h[-1]24// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].25// CHECK-NEXT: udot z0.s, z0.h, z0.h[-1]26// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:27 28// --------------------------------------------------------------------------//29// Invalid vector suffix30 31udot z0.h, z0.s, z0.s32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction33// CHECK-NEXT: udot z0.h, z0.s, z0.s34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:35 36udot z0.h, z0.s, z0.s[1]37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction38// CHECK-NEXT: udot z0.h, z0.s, z0.s[1]39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:40