1@ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null 2>&1 %s \
2@ RUN:   | FileCheck %s -check-prefix CHECK-V7
3@ RUN: not llvm-mc -triple armv8-eabi -filetype asm -o /dev/null 2>&1 %s \
4@ RUN:   | FileCheck %s -check-prefix CHECK-V8
5@ RUN: not llvm-mc -triple thumbv7-eabi -filetype asm -o /dev/null 2>&1 %s \
6@ RUN:   | FileCheck %s -check-prefix CHECK-V7
7@ RUN: not llvm-mc -triple thumbv8-eabi -filetype asm -o /dev/null 2>&1 %s \
8@ RUN:   | FileCheck %s -check-prefix CHECK-V8
9
10	.syntax unified
11
12	.arch_extension crypto
13@ CHECK-V7: error: architectural extension 'crypto' is not allowed for the current base architecture
14@ CHECK-V7-NEXT: 	.arch_extension crypto
15@ CHECK-V7-NEXT:                     ^
16
17	.type crypto,%function
18crypto:
19	vmull.p64 q0, d0, d1
20@ CHECK-V7: error: instruction requires: crypto armv8
21
22	aesd.8 q0, q1
23@ CHECK-V7: error: instruction requires: crypto armv8
24	aese.8 q0, q1
25@ CHECK-V7: error: instruction requires: crypto armv8
26	aesimc.8 q0, q1
27@ CHECK-V7: error: instruction requires: crypto armv8
28	aesmc.8 q0, q1
29@ CHECK-V7: error: instruction requires: crypto armv8
30
31	sha1h.32 q0, q1
32@ CHECK-V7: error: instruction requires: crypto armv8
33	sha1su1.32 q0, q1
34@ CHECK-V7: error: instruction requires: crypto armv8
35	sha256su0.32 q0, q1
36@ CHECK-V7: error: instruction requires: crypto armv8
37
38	sha1c.32 q0, q1, q2
39@ CHECK-V7: error: instruction requires: crypto armv8
40	sha1m.32 q0, q1, q2
41@ CHECK-V7: error: instruction requires: crypto armv8
42	sha1p.32 q0, q1, q2
43@ CHECK-V7: error: instruction requires: crypto armv8
44	sha1su0.32 q0, q1, q2
45@ CHECK-V7: error: instruction requires: crypto armv8
46	sha256h.32 q0, q1, q2
47@ CHECK-V7: error: instruction requires: crypto armv8
48	sha256h2.32 q0, q1, q2
49@ CHECK-V7: error: instruction requires: crypto armv8
50	sha256su1.32 q0, q1, q2
51@ CHECK-V7: error: instruction requires: crypto armv8
52
53	.arch_extension nocrypto
54@ CHECK-V7: error: architectural extension 'crypto' is not allowed for the current base architecture
55@ CHECK-V7-NEXT: 	.arch_extension nocrypto
56@ CHECK-V7-NEXT:                     ^
57
58	.type nocrypto,%function
59nocrypto:
60	vmull.p64 q0, d0, d1
61@ CHECK-V7: error: instruction requires: crypto armv8
62@ CHECK-V8: error: instruction requires: crypto
63
64	aesd.8 q0, q1
65@ CHECK-V7: error: instruction requires: crypto armv8
66@ CHECK-V8: error: instruction requires: crypto
67	aese.8 q0, q1
68@ CHECK-V7: error: instruction requires: crypto armv8
69@ CHECK-V8: error: instruction requires: crypto
70	aesimc.8 q0, q1
71@ CHECK-V7: error: instruction requires: crypto armv8
72@ CHECK-V8: error: instruction requires: crypto
73	aesmc.8 q0, q1
74@ CHECK-V7: error: instruction requires: crypto armv8
75@ CHECK-V8: error: instruction requires: crypto
76
77	sha1h.32 q0, q1
78@ CHECK-V7: error: instruction requires: crypto armv8
79@ CHECK-V8: error: instruction requires: crypto
80	sha1su1.32 q0, q1
81@ CHECK-V7: error: instruction requires: crypto armv8
82@ CHECK-V8: error: instruction requires: crypto
83	sha256su0.32 q0, q1
84@ CHECK-V7: error: instruction requires: crypto armv8
85@ CHECK-V8: error: instruction requires: crypto
86
87	sha1c.32 q0, q1, q2
88@ CHECK-V7: error: instruction requires: crypto armv8
89@ CHECK-V8: error: instruction requires: crypto
90	sha1m.32 q0, q1, q2
91@ CHECK-V7: error: instruction requires: crypto armv8
92@ CHECK-V8: error: instruction requires: crypto
93	sha1p.32 q0, q1, q2
94@ CHECK-V7: error: instruction requires: crypto armv8
95@ CHECK-V8: error: instruction requires: crypto
96	sha1su0.32 q0, q1, q2
97@ CHECK-V7: error: instruction requires: crypto armv8
98@ CHECK-V8: error: instruction requires: crypto
99	sha256h.32 q0, q1, q2
100@ CHECK-V7: error: instruction requires: crypto armv8
101@ CHECK-V8: error: instruction requires: crypto
102	sha256h2.32 q0, q1, q2
103@ CHECK-V7: error: instruction requires: crypto armv8
104@ CHECK-V8: error: instruction requires: crypto
105	sha256su1.32 q0, q1, q2
106@ CHECK-V7: error: instruction requires: crypto armv8
107@ CHECK-V8: error: instruction requires: crypto
108
109