138 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid element width5 6sdot z0.b, z0.b, z0.b[0]7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width8// CHECK-NEXT: sdot z0.b, z0.b, z0.b[0]9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11sdot z0.h, z0.h, z0.h[0]12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width13// CHECK-NEXT: sdot z0.h, z0.h, z0.h[0]14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16sdot z0.s, z0.s, z0.s[0]17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width18// CHECK-NEXT: sdot z0.s, z0.s, z0.s[0]19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:20 21sdot z0.d, z0.d, z0.d[0]22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width23// CHECK-NEXT: sdot z0.d, z0.d, z0.d[0]24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:25 26sdot z0.d, z0.s, z0.s[0]27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width28// CHECK-NEXT: sdot z0.d, z0.s, z0.s[0]29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:30 31sdot z0.b, z0.b, z0.b32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width33// CHECK-NEXT: sdot z0.b, z0.b, z0.b34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:35 36sdot z0.h, z0.h, z0.h37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width38// CHECK-NEXT: sdot z0.h, z0.h, z0.h39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:40 41sdot z0.s, z0.s, z0.s42// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width43// CHECK-NEXT: sdot z0.s, z0.s, z0.s44// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:45 46sdot z0.d, z0.d, z0.d47// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width48// CHECK-NEXT: sdot z0.d, z0.d, z0.d49// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:50 51sdot z0.d, z0.s, z0.s52// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width53// CHECK-NEXT: sdot z0.d, z0.s, z0.s54// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:55 56udot z0.b, z0.b, z0.b[0]57// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width58// CHECK-NEXT: udot z0.b, z0.b, z0.b[0]59// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:60 61udot z0.h, z0.h, z0.h[0]62// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width63// CHECK-NEXT: udot z0.h, z0.h, z0.h[0]64// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:65 66udot z0.s, z0.s, z0.s[0]67// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width68// CHECK-NEXT: udot z0.s, z0.s, z0.s[0]69// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:70 71udot z0.d, z0.d, z0.d[0]72// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width73// CHECK-NEXT: udot z0.d, z0.d, z0.d[0]74// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:75 76udot z0.d, z0.s, z0.s[0]77// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width78// CHECK-NEXT: udot z0.d, z0.s, z0.s[0]79// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:80 81udot z0.b, z0.b, z0.b82// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width83// CHECK-NEXT: udot z0.b, z0.b, z0.b84// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:85 86udot z0.h, z0.h, z0.h87// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width88// CHECK-NEXT: udot z0.h, z0.h, z0.h89// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:90 91udot z0.s, z0.s, z0.s92// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width93// CHECK-NEXT: udot z0.s, z0.s, z0.s94// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:95 96udot z0.d, z0.d, z0.d97// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width98// CHECK-NEXT: udot z0.d, z0.d, z0.d99// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:100 101udot z0.d, z0.s, z0.s102// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width103// CHECK-NEXT: udot z0.d, z0.s, z0.s104// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:105 106// --------------------------------------------------------------------------//107// Invalid register range and index108 109sdot z0.h, z0.b, z8.b[0]110// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction111// CHECK-NEXT: sdot z0.h, z0.b, z8.b[0]112// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:113 114sdot z0.h, z0.b, z0.b[-1]115// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7].116// CHECK-NEXT: sdot z0.h, z0.b, z0.b[-1]117// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:118 119sdot z0.h, z0.b, z0.b[8]120// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7].121// CHECK-NEXT: sdot z0.h, z0.b, z0.b[8]122// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:123 124udot z0.h, z0.b, z8.b[0]125// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction126// CHECK-NEXT: udot z0.h, z0.b, z8.b[0]127// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:128 129udot z0.h, z0.b, z0.b[-1]130// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7].131// CHECK-NEXT: udot z0.h, z0.b, z0.b[-1]132// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:133 134udot z0.h, z0.b, z0.b[8]135// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7].136// CHECK-NEXT: udot z0.h, z0.b, z0.b[8]137// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:138