136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null 2>&1 %s \
236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN:   | FileCheck %s -check-prefix CHECK-V7
336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN: not llvm-mc -triple armv8-eabi -filetype asm -o /dev/null 2>&1 %s \
436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN:   | FileCheck %s -check-prefix CHECK-V8
536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN: not llvm-mc -triple thumbv7-eabi -filetype asm -o /dev/null 2>&1 %s \
636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN:   | FileCheck %s -check-prefix CHECK-V7
736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN: not llvm-mc -triple thumbv8-eabi -filetype asm -o /dev/null 2>&1 %s \
836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN:   | FileCheck %s -check-prefix CHECK-V8
936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.syntax unified
1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.arch_extension crypto
1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: architectural extension 'crypto' is not allowed for the current base architecture
1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7-NEXT: 	.arch_extension crypto
1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7-NEXT:                     ^
1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.type crypto,%function
1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinescrypto:
1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	vmull.p64 q0, d0, d1
2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	aesd.8 q0, q1
2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	aese.8 q0, q1
2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	aesimc.8 q0, q1
2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	aesmc.8 q0, q1
2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1h.32 q0, q1
3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1su1.32 q0, q1
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha256su0.32 q0, q1
3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1c.32 q0, q1, q2
3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1m.32 q0, q1, q2
4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1p.32 q0, q1, q2
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1su0.32 q0, q1, q2
4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha256h.32 q0, q1, q2
4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha256h2.32 q0, q1, q2
4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
5036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha256su1.32 q0, q1, q2
5136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.arch_extension nocrypto
5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: architectural extension 'crypto' is not allowed for the current base architecture
5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7-NEXT: 	.arch_extension nocrypto
5636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7-NEXT:                     ^
5736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.type nocrypto,%function
5936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesnocrypto:
6036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	vmull.p64 q0, d0, d1
6136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
6236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
6336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
6436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	aesd.8 q0, q1
6536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
6636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
6736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	aese.8 q0, q1
6836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
6936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
7036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	aesimc.8 q0, q1
7136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
7236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
7336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	aesmc.8 q0, q1
7436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
7536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
7636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
7736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1h.32 q0, q1
7836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
7936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
8036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1su1.32 q0, q1
8136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
8236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
8336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha256su0.32 q0, q1
8436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
8536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
8636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
8736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1c.32 q0, q1, q2
8836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
8936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
9036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1m.32 q0, q1, q2
9136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
9236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
9336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1p.32 q0, q1, q2
9436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
9536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
9636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha1su0.32 q0, q1, q2
9736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
9836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
9936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha256h.32 q0, q1, q2
10036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
10136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
10236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha256h2.32 q0, q1, q2
10336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
10436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
10536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	sha256su1.32 q0, q1, q2
10636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V7: error: instruction requires: crypto armv8
10736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-V8: error: instruction requires: crypto
10836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
109