1 // RUN
: llvm-mc
-triple aarch64
-mattr
=+dotprod
-show-encoding
< %s | FileCheck
%s
--check-prefix
=CHECK-DOTPROD
2 // RUN
: llvm-mc
-triple aarch64
-mcpu
=cortex-a55
-show-encoding
< %s | FileCheck
%s
--check-prefix
=CHECK-DOTPROD
3 // RUN
: llvm-mc
-triple aarch64
-mcpu
=cortex-a65
-show-encoding
< %s| FileCheck
%s
--check-prefix
=CHECK-DOTPROD
4 // RUN
: llvm-mc
-triple aarch64
-mcpu
=cortex-a65ae
-show-encoding
< %s| FileCheck
%s
--check-prefix
=CHECK-DOTPROD
5 // RUN
: llvm-mc
-triple aarch64
-mcpu
=cortex-a75
-show-encoding
< %s | FileCheck
%s
--check-prefix
=CHECK-DOTPROD
6 // RUN
: llvm-mc
-triple aarch64
-mcpu
=cortex-a76
-show-encoding
< %s | FileCheck
%s
--check-prefix
=CHECK-DOTPROD
7 // RUN
: llvm-mc
-triple aarch64
-mcpu
=neoverse-e1
-show-encoding
< %s| FileCheck
%s
--check-prefix
=CHECK-DOTPROD
8 // RUN
: llvm-mc
-triple aarch64
-mcpu
=neoverse-n1
-show-encoding
< %s| FileCheck
%s
--check-prefix
=CHECK-DOTPROD
9 // RUN
: llvm-mc
-triple aarch64
-mcpu
=tsv110
-show-encoding
< %s | FileCheck
%s
--check-prefix
=CHECK-DOTPROD
11 // RUN
: not llvm-mc
-triple aarch64
-mattr
=+v8.2
a -show-encoding
< %s
2> %t
12 // RUN
: FileCheck
--check-prefix
=CHECK-NO-DOTPROD
< %t %s
13 // RUN
: not llvm-mc
-triple aarch64
-mcpu
=cortex-a65
-mattr
=-dotprod
-show-encoding
< %s
2> %t
14 // RUN
: FileCheck
--check-prefix
=CHECK-NO-DOTPROD
< %t %s
15 // RUN
: not llvm-mc
-triple aarch64
-mcpu
=cortex-a65ae
-mattr
=-dotprod
-show-encoding
< %s
2> %t
16 // RUN
: FileCheck
--check-prefix
=CHECK-NO-DOTPROD
< %t %s
17 // RUN
: not llvm-mc
-triple aarch64
-mcpu
=neoverse-e1
-mattr
=-dotprod
-show-encoding
< %s
2> %t
18 // RUN
: FileCheck
--check-prefix
=CHECK-NO-DOTPROD
< %t %s
19 // RUN
: not llvm-mc
-triple aarch64
-mcpu
=neoverse-n1
-mattr
=-dotprod
-show-encoding
< %s
2> %t
20 // RUN
: FileCheck
--check-prefix
=CHECK-NO-DOTPROD
< %t %s
22 udot v0.2s
, v1.8
b, v2.8
b
23 sdot v0.2s
, v1.8
b, v2.8
b
24 udot v0.4s
, v1.16
b, v2.16
b
25 sdot v0.4s
, v1.16
b, v2.16
b
26 udot v0.2s
, v1.8
b, v2.4
b[0]
27 sdot v0.2s
, v1.8
b, v2.4
b[1]
28 udot v0.4s
, v1.16
b, v2.4
b[2]
29 sdot v0.4s
, v1.16
b, v2.4
b[3]
31 // Check that the upper case types are aliases
32 udot v0.2S
, v1.8
B, v2.4
B[0]
33 udot v0.4S
, v1.16
B, v2.4
B[2]
35 // CHECK-DOTPROD
: udot v0.2s
, v1.8
b, v2.8
b // encoding
: [0x20,0x94,0x82,0x2e]
36 // CHECK-DOTPROD
: sdot v0.2s
, v1.8
b, v2.8
b // encoding
: [0x20,0x94,0x82,0x0e]
37 // CHECK-DOTPROD
: udot v0.4s
, v1.16
b, v2.16
b // encoding
: [0x20,0x94,0x82,0x6e]
38 // CHECK-DOTPROD
: sdot v0.4s
, v1.16
b, v2.16
b // encoding
: [0x20,0x94,0x82,0x4e]
39 // CHECK-DOTPROD
: udot v0.2s
, v1.8
b, v2.4
b[0] // encoding
: [0x20,0xe0,0x82,0x2f]
40 // CHECK-DOTPROD
: sdot v0.2s
, v1.8
b, v2.4
b[1] // encoding
: [0x20,0xe0,0xa2,0x0f]
41 // CHECK-DOTPROD
: udot v0.4s
, v1.16
b, v2.4
b[2] // encoding
: [0x20,0xe8,0x82,0x6f]
42 // CHECK-DOTPROD
: sdot v0.4s
, v1.16
b, v2.4
b[3] // encoding
: [0x20,0xe8,0xa2,0x4f]
44 // CHECK-DOTPROD
: udot v0.2s
, v1.8
b, v2.4
b[0] // encoding
: [0x20,0xe0,0x82,0x2f]
45 // CHECK-DOTPROD
: udot v0.4s
, v1.16
b, v2.4
b[2] // encoding
: [0x20,0xe8,0x82,0x6f]
47 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
48 // CHECK-NO-DOTPROD
: udot v0.2s
, v1.8
b, v2.8
b
49 // CHECK-NO-DOTPROD
: ^
50 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
51 // CHECK-NO-DOTPROD
: sdot v0.2s
, v1.8
b, v2.8
b
52 // CHECK-NO-DOTPROD
: ^
53 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
54 // CHECK-NO-DOTPROD
: udot v0.4s
, v1.16
b, v2.16
b
55 // CHECK-NO-DOTPROD
: ^
56 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
57 // CHECK-NO-DOTPROD
: sdot v0.4s
, v1.16
b, v2.16
b
58 // CHECK-NO-DOTPROD
: ^
59 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
60 // CHECK-NO-DOTPROD
: udot v0.2s
, v1.8
b, v2.4
b[0]
61 // CHECK-NO-DOTPROD
: ^
62 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
63 // CHECK-NO-DOTPROD
: sdot v0.2s
, v1.8
b, v2.4
b[1]
64 // CHECK-NO-DOTPROD
: ^
65 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
66 // CHECK-NO-DOTPROD
: udot v0.4s
, v1.16
b, v2.4
b[2]
67 // CHECK-NO-DOTPROD
: ^
68 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
69 // CHECK-NO-DOTPROD
: sdot v0.4s
, v1.16
b, v2.4
b[3]
70 // CHECK-NO-DOTPROD
: ^
72 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
73 // CHECK-NO-DOTPROD
: udot v0.2S
, v1.8
B, v2.4
B[0]
74 // CHECK-NO-DOTPROD
: ^
75 // CHECK-NO-DOTPROD
: error
: instruction requires
: dotprod
76 // CHECK-NO-DOTPROD
: udot v0.4S
, v1.16
B, v2.4
B[2]
77 // CHECK-NO-DOTPROD
: ^