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
6	.syntax unified
7
8	.arm
9
10	.arch_extension crc
11@ CHECK-V7: error: architectural extension 'crc' is not allowed for the current base architecture
12@ CHECK-V7-NEXT: 	.arch_extension crc
13@ CHECK-V7-NEXT:                     ^
14
15	.type crc,%function
16crc:
17	crc32b r0, r1, r2
18@ CHECK-V7: error: instruction requires: crc armv8
19	crc32h r0, r1, r2
20@ CHECK-V7: error: instruction requires: crc armv8
21	crc32w r0, r1, r2
22@ CHECK-V7: error: instruction requires: crc armv8
23
24	crc32cb r0, r1, r2
25@ CHECK-V7: error: instruction requires: crc armv8
26	crc32ch r0, r1, r2
27@ CHECK-V7: error: instruction requires: crc armv8
28	crc32cw r0, r1, r2
29@ CHECK-V7: error: instruction requires: crc armv8
30
31	.arch_extension nocrc
32@ CHECK-V7: error: architectural extension 'crc' is not allowed for the current base architecture
33@ CHECK-V7-NEXT: 	.arch_extension nocrc
34@ CHECK-V7-NEXT:                     ^
35
36	.type nocrc,%function
37nocrc:
38	crc32b r0, r1, r2
39@ CHECK-V7: error: instruction requires: crc armv8
40@ CHECK-V8: error: instruction requires: crc arm-mode
41	crc32h r0, r1, r2
42@ CHECK-V7: error: instruction requires: crc armv8
43@ CHECK-V8: error: instruction requires: crc arm-mode
44	crc32w r0, r1, r2
45@ CHECK-V7: error: instruction requires: crc armv8
46@ CHECK-V8: error: instruction requires: crc arm-mode
47
48	crc32cb r0, r1, r2
49@ CHECK-V7: error: instruction requires: crc armv8
50@ CHECK-V8: error: instruction requires: crc arm-mode
51	crc32ch r0, r1, r2
52@ CHECK-V7: error: instruction requires: crc armv8
53@ CHECK-V8: error: instruction requires: crc arm-mode
54	crc32cw r0, r1, r2
55@ CHECK-V7: error: instruction requires: crc armv8
56@ CHECK-V8: error: instruction requires: crc arm-mode
57
58