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