[Frontend] Remove unused includes (NFC) (#116927)
[llvm-project.git] / llvm / test / MC / AArch64 / armv8.2a-dotprod.s
blob4d96409067a2e1212322ef34e62cd828527eafde
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=cortex-a77 -show-encoding < %s | FileCheck %s --check-prefix=CHECK-DOTPROD
8 // RUN: llvm-mc -triple aarch64 -mcpu=cortex-a78 -show-encoding < %s | FileCheck %s --check-prefix=CHECK-DOTPROD
9 // RUN: llvm-mc -triple aarch64 -mcpu=cortex-x1 -show-encoding < %s | FileCheck %s --check-prefix=CHECK-DOTPROD
10 // RUN: llvm-mc -triple aarch64 -mcpu=neoverse-e1 -show-encoding < %s| FileCheck %s --check-prefix=CHECK-DOTPROD
11 // RUN: llvm-mc -triple aarch64 -mcpu=neoverse-n1 -show-encoding < %s| FileCheck %s --check-prefix=CHECK-DOTPROD
12 // RUN: llvm-mc -triple aarch64 -mcpu=neoverse-n2 -show-encoding < %s| FileCheck %s --check-prefix=CHECK-DOTPROD
13 // RUN: llvm-mc -triple aarch64 -mcpu=tsv110 -show-encoding < %s | FileCheck %s --check-prefix=CHECK-DOTPROD
14 // RUN: llvm-mc -triple aarch64 -mcpu=cortex-r82 -show-encoding < %s | FileCheck %s --check-prefix=CHECK-DOTPROD
15 // RUN: llvm-mc -triple aarch64 -mattr=+v8r,+dotprod -show-encoding < %s | FileCheck %s --check-prefix=CHECK-DOTPROD
16 // RUN: llvm-mc -triple aarch64 -mcpu=ampere1 -show-encoding < %s | FileCheck %s --check-prefix=CHECK-DOTPROD
17 // RUN: llvm-mc -triple aarch64 -mcpu=ampere1a -show-encoding < %s | FileCheck %s --check-prefix=CHECK-DOTPROD
18 // RUN: llvm-mc -triple aarch64 -mcpu=ampere1b -show-encoding < %s | FileCheck %s --check-prefix=CHECK-DOTPROD
20 // RUN: not llvm-mc -triple aarch64 -mattr=+v8.2a -show-encoding < %s 2> %t
21 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
22 // RUN: not llvm-mc -triple aarch64 -mattr=+v8r -show-encoding < %s 2> %t
23 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
24 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-r82 -mattr=-dotprod -show-encoding < %s 2> %t
25 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
26 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-a65 -mattr=-dotprod -show-encoding < %s 2> %t
27 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
28 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-a65ae -mattr=-dotprod -show-encoding < %s 2> %t
29 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
30 // RUN: not llvm-mc -triple aarch64 -mcpu=neoverse-e1 -mattr=-dotprod -show-encoding < %s 2> %t
31 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
32 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-a77 -mattr=-dotprod -show-encoding < %s 2> %t
33 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
34 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-a78 -mattr=-dotprod -show-encoding < %s 2> %t
35 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
36 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-x1 -mattr=-dotprod -show-encoding < %s 2> %t
37 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
38 // RUN: not llvm-mc -triple aarch64 -mcpu=neoverse-n1 -mattr=-dotprod -show-encoding < %s 2> %t
39 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
40 // RUN: not llvm-mc -triple aarch64 -mcpu=neoverse-n2 -mattr=-dotprod -show-encoding < %s 2> %t
41 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
42 // RUN: not llvm-mc -triple aarch64 -mcpu=ampere1 -mattr=-dotprod -show-encoding < %s 2> %t
43 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
44 // RUN: not llvm-mc -triple aarch64 -mcpu=ampere1a -mattr=-dotprod -show-encoding < %s 2> %t
45 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
46 // RUN: not llvm-mc -triple aarch64 -mcpu=ampere1b -mattr=-dotprod -show-encoding < %s 2> %t
47 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
49 udot v0.2s, v1.8b, v2.8b
50 sdot v0.2s, v1.8b, v2.8b
51 udot v0.4s, v1.16b, v2.16b
52 sdot v0.4s, v1.16b, v2.16b
53 udot v0.2s, v1.8b, v2.4b[0]
54 sdot v0.2s, v1.8b, v2.4b[1]
55 udot v0.4s, v1.16b, v2.4b[2]
56 sdot v0.4s, v1.16b, v2.4b[3]
58 // Check that the upper case types are aliases
59 udot v0.2S, v1.8B, v2.4B[0]
60 udot v0.4S, v1.16B, v2.4B[2]
62 // CHECK-DOTPROD: udot v0.2s, v1.8b, v2.8b // encoding: [0x20,0x94,0x82,0x2e]
63 // CHECK-DOTPROD: sdot v0.2s, v1.8b, v2.8b // encoding: [0x20,0x94,0x82,0x0e]
64 // CHECK-DOTPROD: udot v0.4s, v1.16b, v2.16b // encoding: [0x20,0x94,0x82,0x6e]
65 // CHECK-DOTPROD: sdot v0.4s, v1.16b, v2.16b // encoding: [0x20,0x94,0x82,0x4e]
66 // CHECK-DOTPROD: udot v0.2s, v1.8b, v2.4b[0] // encoding: [0x20,0xe0,0x82,0x2f]
67 // CHECK-DOTPROD: sdot v0.2s, v1.8b, v2.4b[1] // encoding: [0x20,0xe0,0xa2,0x0f]
68 // CHECK-DOTPROD: udot v0.4s, v1.16b, v2.4b[2] // encoding: [0x20,0xe8,0x82,0x6f]
69 // CHECK-DOTPROD: sdot v0.4s, v1.16b, v2.4b[3] // encoding: [0x20,0xe8,0xa2,0x4f]
71 // CHECK-DOTPROD: udot v0.2s, v1.8b, v2.4b[0] // encoding: [0x20,0xe0,0x82,0x2f]
72 // CHECK-DOTPROD: udot v0.4s, v1.16b, v2.4b[2] // encoding: [0x20,0xe8,0x82,0x6f]
74 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
75 // CHECK-NO-DOTPROD: udot v0.2s, v1.8b, v2.8b
76 // CHECK-NO-DOTPROD: ^
77 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
78 // CHECK-NO-DOTPROD: sdot v0.2s, v1.8b, v2.8b
79 // CHECK-NO-DOTPROD: ^
80 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
81 // CHECK-NO-DOTPROD: udot v0.4s, v1.16b, v2.16b
82 // CHECK-NO-DOTPROD: ^
83 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
84 // CHECK-NO-DOTPROD: sdot v0.4s, v1.16b, v2.16b
85 // CHECK-NO-DOTPROD: ^
86 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
87 // CHECK-NO-DOTPROD: udot v0.2s, v1.8b, v2.4b[0]
88 // CHECK-NO-DOTPROD: ^
89 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
90 // CHECK-NO-DOTPROD: sdot v0.2s, v1.8b, v2.4b[1]
91 // CHECK-NO-DOTPROD: ^
92 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
93 // CHECK-NO-DOTPROD: udot v0.4s, v1.16b, v2.4b[2]
94 // CHECK-NO-DOTPROD: ^
95 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
96 // CHECK-NO-DOTPROD: sdot v0.4s, v1.16b, v2.4b[3]
97 // CHECK-NO-DOTPROD: ^
99 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
100 // CHECK-NO-DOTPROD: udot v0.2S, v1.8B, v2.4B[0]
101 // CHECK-NO-DOTPROD: ^
102 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
103 // CHECK-NO-DOTPROD: udot v0.4S, v1.16B, v2.4B[2]
104 // CHECK-NO-DOTPROD: ^