[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / MC / AArch64 / armv8.2a-dotprod.s
blob9c4a6cad7e07a658063221e434a4c5d5725a6452
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 -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
19 // RUN: not llvm-mc -triple aarch64 -mattr=+v8.2a -show-encoding < %s 2> %t
20 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
21 // RUN: not llvm-mc -triple aarch64 -mattr=+v8r,-dotprod -show-encoding < %s 2> %t
22 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
23 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-r82 -mattr=-dotprod -show-encoding < %s 2> %t
24 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
25 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-a65 -mattr=-dotprod -show-encoding < %s 2> %t
26 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
27 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-a65ae -mattr=-dotprod -show-encoding < %s 2> %t
28 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
29 // RUN: not llvm-mc -triple aarch64 -mcpu=neoverse-e1 -mattr=-dotprod -show-encoding < %s 2> %t
30 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
31 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-a77 -mattr=-dotprod -show-encoding < %s 2> %t
32 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
33 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-a78 -mattr=-dotprod -show-encoding < %s 2> %t
34 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
35 // RUN: not llvm-mc -triple aarch64 -mcpu=cortex-x1 -mattr=-dotprod -show-encoding < %s 2> %t
36 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
37 // RUN: not llvm-mc -triple aarch64 -mcpu=neoverse-n1 -mattr=-dotprod -show-encoding < %s 2> %t
38 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
39 // RUN: not llvm-mc -triple aarch64 -mcpu=neoverse-n2 -mattr=-dotprod -show-encoding < %s 2> %t
40 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
41 // RUN: not llvm-mc -triple aarch64 -mcpu=ampere1 -mattr=-dotprod -show-encoding < %s 2> %t
42 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
43 // RUN: not llvm-mc -triple aarch64 -mcpu=ampere1a -mattr=-dotprod -show-encoding < %s 2> %t
44 // RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s
46 udot v0.2s, v1.8b, v2.8b
47 sdot v0.2s, v1.8b, v2.8b
48 udot v0.4s, v1.16b, v2.16b
49 sdot v0.4s, v1.16b, v2.16b
50 udot v0.2s, v1.8b, v2.4b[0]
51 sdot v0.2s, v1.8b, v2.4b[1]
52 udot v0.4s, v1.16b, v2.4b[2]
53 sdot v0.4s, v1.16b, v2.4b[3]
55 // Check that the upper case types are aliases
56 udot v0.2S, v1.8B, v2.4B[0]
57 udot v0.4S, v1.16B, v2.4B[2]
59 // CHECK-DOTPROD: udot v0.2s, v1.8b, v2.8b // encoding: [0x20,0x94,0x82,0x2e]
60 // CHECK-DOTPROD: sdot v0.2s, v1.8b, v2.8b // encoding: [0x20,0x94,0x82,0x0e]
61 // CHECK-DOTPROD: udot v0.4s, v1.16b, v2.16b // encoding: [0x20,0x94,0x82,0x6e]
62 // CHECK-DOTPROD: sdot v0.4s, v1.16b, v2.16b // encoding: [0x20,0x94,0x82,0x4e]
63 // CHECK-DOTPROD: udot v0.2s, v1.8b, v2.4b[0] // encoding: [0x20,0xe0,0x82,0x2f]
64 // CHECK-DOTPROD: sdot v0.2s, v1.8b, v2.4b[1] // encoding: [0x20,0xe0,0xa2,0x0f]
65 // CHECK-DOTPROD: udot v0.4s, v1.16b, v2.4b[2] // encoding: [0x20,0xe8,0x82,0x6f]
66 // CHECK-DOTPROD: sdot v0.4s, v1.16b, v2.4b[3] // encoding: [0x20,0xe8,0xa2,0x4f]
68 // CHECK-DOTPROD: udot v0.2s, v1.8b, v2.4b[0] // encoding: [0x20,0xe0,0x82,0x2f]
69 // CHECK-DOTPROD: udot v0.4s, v1.16b, v2.4b[2] // encoding: [0x20,0xe8,0x82,0x6f]
71 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
72 // CHECK-NO-DOTPROD: udot v0.2s, v1.8b, v2.8b
73 // CHECK-NO-DOTPROD: ^
74 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
75 // CHECK-NO-DOTPROD: sdot v0.2s, v1.8b, v2.8b
76 // CHECK-NO-DOTPROD: ^
77 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
78 // CHECK-NO-DOTPROD: udot v0.4s, v1.16b, v2.16b
79 // CHECK-NO-DOTPROD: ^
80 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
81 // CHECK-NO-DOTPROD: sdot v0.4s, v1.16b, v2.16b
82 // CHECK-NO-DOTPROD: ^
83 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
84 // CHECK-NO-DOTPROD: udot v0.2s, v1.8b, v2.4b[0]
85 // CHECK-NO-DOTPROD: ^
86 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
87 // CHECK-NO-DOTPROD: sdot v0.2s, v1.8b, v2.4b[1]
88 // CHECK-NO-DOTPROD: ^
89 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
90 // CHECK-NO-DOTPROD: udot v0.4s, v1.16b, v2.4b[2]
91 // CHECK-NO-DOTPROD: ^
92 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
93 // CHECK-NO-DOTPROD: sdot v0.4s, v1.16b, v2.4b[3]
94 // CHECK-NO-DOTPROD: ^
96 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
97 // CHECK-NO-DOTPROD: udot v0.2S, v1.8B, v2.4B[0]
98 // CHECK-NO-DOTPROD: ^
99 // CHECK-NO-DOTPROD: error: instruction requires: dotprod
100 // CHECK-NO-DOTPROD: udot v0.4S, v1.16B, v2.4B[2]
101 // CHECK-NO-DOTPROD: ^