1 /* { dg-do assemble } */
2 /* { dg-options "-O2 -march=armv8-a+nocrc -mcpu=generic -save-temps" } */
3 
4 #include "arm_acle.h"
5 
6 /* Check that enabling an ISA feature using an attribute in a file
7    compiled without that attribute works.  */
8 
9 __attribute__ ((target ("+crc")))
10 uint32_t
foo(uint32_t a,uint8_t b)11 foo (uint32_t a, uint8_t b)
12 {
13   return __crc32b (a, b);
14 }
15 
16 __attribute__ ((target ("arch=armv8-a+crc")))
17 uint32_t
fooarch(uint32_t a,uint8_t b)18 fooarch (uint32_t a, uint8_t b)
19 {
20   return __crc32b (a, b);
21 }
22 
23 __attribute__ ((target ("cpu=cortex-a53+crc")))
24 uint32_t
foocpu(uint32_t a,uint8_t b)25 foocpu (uint32_t a, uint8_t b)
26 {
27   return __crc32b (a, b);
28 }
29 
30 /* { dg-final { scan-assembler-times "crc32b\tw..?, w..?, w..?\n" 3 } } */
31