source: icGREP/icgrep-devel/llvm-3.8.0.src/test/CodeGen/ARM/build-attributes.ll @ 5027

Last change on this file since 5027 was 5027, checked in by cameron, 3 years ago

Upgrade to llvm 3.8

File size: 64.3 KB
Line 
1; This tests that MC/asm header conversion is smooth and that the
2; build attributes are correct
3
4; RUN: llc < %s -mtriple=thumbv5-linux-gnueabi -mcpu=xscale -mattr=+strict-align | FileCheck %s --check-prefix=XSCALE
5; RUN: llc < %s -mtriple=armv6-linux-gnueabi -mattr=+strict-align | FileCheck %s --check-prefix=V6
6; RUN: llc < %s -mtriple=armv6-linux-gnueabi -mattr=+strict-align  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=V6-FAST
7; RUN: llc < %s -mtriple=armv6-linux-gnueabi -mattr=+strict-align -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
8; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mattr=+strict-align | FileCheck %s --check-prefix=V6M
9; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mattr=+strict-align  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=V6M-FAST
10; RUN: llc < %s -mtriple=thumbv6sm-linux-gnueabi -mattr=+strict-align | FileCheck %s --check-prefix=V6M
11; RUN: llc < %s -mtriple=thumbv6sm-linux-gnueabi -mattr=+strict-align -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=V6M-FAST
12; RUN: llc < %s -mtriple=armv6-linux-gnueabi -mcpu=arm1156t2f-s -mattr=+strict-align | FileCheck %s --check-prefix=ARM1156T2F-S
13; RUN: llc < %s -mtriple=armv6-linux-gnueabi -mcpu=arm1156t2f-s -mattr=+strict-align  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast  | FileCheck %s --check-prefix=ARM1156T2F-S-FAST
14; RUN: llc < %s -mtriple=armv6-linux-gnueabi -mcpu=arm1156t2f-s -mattr=+strict-align -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
15; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi | FileCheck %s --check-prefix=V7M
16; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=V7M-FAST
17; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
18; RUN: llc < %s -mtriple=armv7-linux-gnueabi | FileCheck %s --check-prefix=V7
19; RUN: llc < %s -mtriple=armv7-linux-gnueabi -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
20; RUN: llc < %s -mtriple=armv7-linux-gnueabi  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=V7-FAST
21; RUN: llc < %s -mtriple=armv8-linux-gnueabi | FileCheck %s --check-prefix=V8
22; RUN: llc < %s -mtriple=armv8-linux-gnueabi  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=V8-FAST
23; RUN: llc < %s -mtriple=armv8-linux-gnueabi -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
24; RUN: llc < %s -mtriple=thumbv8-linux-gnueabi | FileCheck %s --check-prefix=Vt8
25; RUN: llc < %s -mtriple=thumbv8-linux-gnueabi -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
26; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=-neon,-crypto | FileCheck %s --check-prefix=V8-FPARMv8
27; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=-fp-armv8,-crypto | FileCheck %s --check-prefix=V8-NEON
28; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mattr=-crypto | FileCheck %s --check-prefix=V8-FPARMv8-NEON
29; RUN: llc < %s -mtriple=armv8-linux-gnueabi | FileCheck %s --check-prefix=V8-FPARMv8-NEON-CRYPTO
30; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 | FileCheck %s --check-prefix=CORTEX-A5-DEFAULT
31; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A5-DEFAULT-FAST
32; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
33; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 -mattr=-neon,+d16 | FileCheck %s --check-prefix=CORTEX-A5-NONEON
34; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 -mattr=-vfp2 | FileCheck %s --check-prefix=CORTEX-A5-NOFPU
35; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a5 -mattr=-vfp2  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A5-NOFPU-FAST
36; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a9 -float-abi=soft | FileCheck %s --check-prefix=CORTEX-A9-SOFT
37; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a9 -float-abi=soft  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A9-SOFT-FAST
38; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a9 -float-abi=hard | FileCheck %s --check-prefix=CORTEX-A9-HARD
39; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a9 -float-abi=hard  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A9-HARD-FAST
40; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a9 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
41; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a12 | FileCheck %s --check-prefix=CORTEX-A12-DEFAULT
42; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a9 -float-abi=soft | FileCheck %s --check-prefix=CORTEX-A9-SOFT
43; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a12  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A12-DEFAULT-FAST
44; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a12 -mattr=-vfp2 | FileCheck %s --check-prefix=CORTEX-A12-NOFPU
45; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a12 -mattr=-vfp2  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A12-NOFPU-FAST
46; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a12 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
47; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15 | FileCheck %s --check-prefix=CORTEX-A15
48; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A15-FAST
49; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
50; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a17 | FileCheck %s --check-prefix=CORTEX-A17-DEFAULT
51; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a17  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A17-FAST
52; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a17 -mattr=-vfp2 | FileCheck %s --check-prefix=CORTEX-A17-NOFPU
53; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a17 -mattr=-vfp2  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A17-NOFPU-FAST
54
55; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mattr=-neon,+vfp3,+fp16 | FileCheck %s --check-prefix=GENERIC-FPU-VFPV3-FP16
56; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mattr=-neon,+vfp3,+d16,+fp16 | FileCheck %s --check-prefix=GENERIC-FPU-VFPV3-D16-FP16
57; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mattr=-neon,+vfp3,+fp-only-sp,+d16 | FileCheck %s --check-prefix=GENERIC-FPU-VFPV3XD
58; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mattr=-neon,+vfp3,+fp-only-sp,+d16,+fp16 | FileCheck %s --check-prefix=GENERIC-FPU-VFPV3XD-FP16
59; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mattr=+neon,+fp16 | FileCheck %s --check-prefix=GENERIC-FPU-NEON-FP16
60
61; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a17 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
62; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=cortex-m0 -mattr=+strict-align | FileCheck %s --check-prefix=CORTEX-M0
63; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=cortex-m0 -mattr=+strict-align  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-M0-FAST
64; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=cortex-m0 -mattr=+strict-align -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
65; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=cortex-m0plus -mattr=+strict-align | FileCheck %s --check-prefix=CORTEX-M0PLUS
66; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=cortex-m0plus -mattr=+strict-align  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-M0PLUS-FAST
67; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=cortex-m0plus -mattr=+strict-align -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
68; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=cortex-m1 -mattr=+strict-align | FileCheck %s --check-prefix=CORTEX-M1
69; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=cortex-m1 -mattr=+strict-align  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-M1-FAST
70; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=cortex-m1 -mattr=+strict-align -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
71; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=sc000 -mattr=+strict-align | FileCheck %s --check-prefix=SC000
72; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=sc000 -mattr=+strict-align  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=SC000-FAST
73; RUN: llc < %s -mtriple=thumbv6m-linux-gnueabi -mcpu=sc000 -mattr=+strict-align -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
74; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=cortex-m3 | FileCheck %s --check-prefix=CORTEX-M3
75; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=cortex-m3  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-M3-FAST
76; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=cortex-m3 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
77; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=sc300 | FileCheck %s --check-prefix=SC300
78; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=sc300  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=SC300-FAST
79; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=sc300 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
80; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=cortex-m4 -float-abi=soft | FileCheck %s --check-prefix=CORTEX-M4-SOFT
81; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=cortex-m4 -float-abi=soft  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-M4-SOFT-FAST
82; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=cortex-m4 -float-abi=hard | FileCheck %s --check-prefix=CORTEX-M4-HARD
83; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=cortex-m4 -float-abi=hard  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-M4-HARD-FAST
84; RUN: llc < %s -mtriple=thumbv7m-linux-gnueabi -mcpu=cortex-m4 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
85; RUN: llc < %s -mtriple=thumbv7em-linux-gnueabi -mcpu=cortex-m7 -mattr=-vfp2 | FileCheck %s --check-prefix=CORTEX-M7 --check-prefix=CORTEX-M7-SOFT
86; RUN: llc < %s -mtriple=thumbv7em-linux-gnueabi -mcpu=cortex-m7 -mattr=-vfp2  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-M7-NOFPU-FAST
87; RUN: llc < %s -mtriple=thumbv7em-linux-gnueabi -mcpu=cortex-m7 -mattr=+fp-only-sp | FileCheck %s --check-prefix=CORTEX-M7 --check-prefix=CORTEX-M7-SINGLE
88; RUN: llc < %s -mtriple=thumbv7em-linux-gnueabi -mcpu=cortex-m7 -mattr=+fp-only-sp  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-M7-FAST
89; RUN: llc < %s -mtriple=thumbv7em-linux-gnueabi -mcpu=cortex-m7 | FileCheck %s --check-prefix=CORTEX-M7-DOUBLE
90; RUN: llc < %s -mtriple=thumbv7em-linux-gnueabi -mcpu=cortex-m7 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
91; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r4 | FileCheck %s --check-prefix=CORTEX-R4
92; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r4f | FileCheck %s --check-prefix=CORTEX-R4F
93; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r5 | FileCheck %s --check-prefix=CORTEX-R5
94; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r5  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-R5-FAST
95; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r5 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
96; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r7 | FileCheck %s --check-prefix=CORTEX-R7
97; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r7  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-R7-FAST
98; RUN: llc < %s -mtriple=armv7r-linux-gnueabi -mcpu=cortex-r7 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
99; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a35 | FileCheck %s --check-prefix=CORTEX-A35
100; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a35  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A35-FAST
101; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a35 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
102; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a53 | FileCheck %s --check-prefix=CORTEX-A53
103; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a53  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A53-FAST
104; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a53 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
105; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a57 | FileCheck %s --check-prefix=CORTEX-A57
106; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a57  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A57-FAST
107; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a57 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
108; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a72 | FileCheck %s --check-prefix=CORTEX-A72
109; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a72  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A72-FAST
110; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=cortex-a72 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
111; RUN: llc < %s -mtriple=armv8.1a-linux-gnueabi | FileCheck %s --check-prefix=GENERIC-ARMV8_1-A
112; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=exynos-m1 | FileCheck %s --check-prefix=EXYNOS-M1
113; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=exynos-m1  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=EXYNOS-M1-FAST
114; RUN: llc < %s -mtriple=armv8-linux-gnueabi -mcpu=exynos-m1 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
115; RUN: llc < %s -mtriple=armv8.1a-linux-gnueabi  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=GENERIC-ARMV8_1-A-FAST
116; RUN: llc < %s -mtriple=armv8.1a-linux-gnueabi -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
117; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 | FileCheck %s  --check-prefix=CORTEX-A7-CHECK
118; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s  --check-prefix=CORTEX-A7-CHECK-FAST
119; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -mattr=-vfp2,-vfp3,-vfp4,-neon,-fp16 | FileCheck %s --check-prefix=CORTEX-A7-NOFPU
120; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -mattr=-vfp2,-vfp3,-vfp4,-neon,-fp16  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A7-NOFPU-FAST
121; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -mattr=+vfp4,-neon | FileCheck %s --check-prefix=CORTEX-A7-FPUV4
122; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -enable-sign-dependent-rounding-fp-math | FileCheck %s --check-prefix=DYN-ROUNDING
123; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -mattr=+vfp4,-neon  -enable-unsafe-fp-math -disable-fp-elim -enable-no-infs-fp-math -enable-no-nans-fp-math -fp-contract=fast | FileCheck %s --check-prefix=CORTEX-A7-FPUV4-FAST
124; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -mattr=+vfp4,,+d16,-neon | FileCheck %s --check-prefix=CORTEX-A7-FPUV4
125; RUN: llc < %s -mtriple=arm-none-linux-gnueabi -mattr=+strict-align -relocation-model=pic | FileCheck %s --check-prefix=RELOC-PIC
126; RUN: llc < %s -mtriple=arm-none-linux-gnueabi -mattr=+strict-align -relocation-model=static | FileCheck %s --check-prefix=RELOC-OTHER
127; RUN: llc < %s -mtriple=arm-none-linux-gnueabi -mattr=+strict-align -relocation-model=default | FileCheck %s --check-prefix=RELOC-OTHER
128; RUN: llc < %s -mtriple=arm-none-linux-gnueabi -mattr=+strict-align -relocation-model=dynamic-no-pic | FileCheck %s --check-prefix=RELOC-OTHER
129; RUN: llc < %s -mtriple=arm-none-linux-gnueabi -mattr=+strict-align | FileCheck %s --check-prefix=RELOC-OTHER
130; RUN: llc < %s -mtriple=arm-none-linux-gnueabi -mattr=+strict-align | FileCheck %s --check-prefix=PCS-R9-USE
131; RUN: llc < %s -mtriple=arm-none-linux-gnueabi -mattr=+reserve-r9,+strict-align | FileCheck %s --check-prefix=PCS-R9-RESERVE
132
133; ARMv8.1a (AArch32)
134; RUN: llc < %s -mtriple=armv8.1a-none-linux-gnueabi | FileCheck %s --check-prefix=NO-STRICT-ALIGN
135; RUN: llc < %s -mtriple=armv8.1a-none-linux-gnueabi -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
136; RUN: llc < %s -mtriple=armv8.1a-none-linux-gnueabi | FileCheck %s --check-prefix=NO-STRICT-ALIGN
137; ARMv8a (AArch32)
138; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a35 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
139; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a35 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
140; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a57 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
141; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a57 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
142; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a72 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
143; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=cortex-a72 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
144; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=exynos-m1 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
145; RUN: llc < %s -mtriple=armv8-none-linux-gnueabi -mcpu=exynos-m1 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
146
147; ARMv7a
148; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
149; RUN: llc < %s -mtriple=armv7-none-linux-gnueabi -mcpu=cortex-a7 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
150; ARMv7r
151; RUN: llc < %s -mtriple=armv7r-none-linux-gnueabi -mcpu=cortex-r5 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
152; RUN: llc < %s -mtriple=armv7r-none-linux-gnueabi -mcpu=cortex-r5 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
153; ARMv7m
154; RUN: llc < %s -mtriple=thumbv7m-none-linux-gnueabi -mcpu=cortex-m3 | FileCheck %s --check-prefix=NO-STRICT-ALIGN
155; RUN: llc < %s -mtriple=thumbv7m-none-linux-gnueabi -mcpu=cortex-m3 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
156; ARMv6
157; RUN: llc < %s -mtriple=armv6-none-netbsd-gnueabi -mcpu=arm1136j-s | FileCheck %s --check-prefix=NO-STRICT-ALIGN
158; RUN: llc < %s -mtriple=armv6-none-linux-gnueabi -mcpu=arm1136j-s -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
159; RUN: llc < %s -mtriple=armv6-none-linux-gnueabi -mcpu=arm1136j-s | FileCheck %s --check-prefix=NO-STRICT-ALIGN
160; ARMv6k
161; RUN: llc < %s -mtriple=armv6k-none-netbsd-gnueabi -mcpu=arm1176j-s | FileCheck %s --check-prefix=NO-STRICT-ALIGN
162; RUN: llc < %s -mtriple=armv6k-none-linux-gnueabi -mcpu=arm1176j-s -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
163; RUN: llc < %s -mtriple=armv6k-none-linux-gnueabi -mcpu=arm1176j-s | FileCheck %s --check-prefix=NO-STRICT-ALIGN
164; ARMv6m
165; RUN: llc < %s -mtriple=thumb-none-linux-gnueabi -mcpu=cortex-m0 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
166; RUN: llc < %s -mtriple=thumb-none-linux-gnueabi -mattr=+strict-align -mcpu=cortex-m0 | FileCheck %s --check-prefix=STRICT-ALIGN
167; RUN: llc < %s -mtriple=thumbv6m-none-linux-gnueabi -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
168; RUN: llc < %s -mtriple=thumb-none-linux-gnueabi -mcpu=cortex-m0 -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
169; ARMv5
170; RUN: llc < %s -mtriple=armv5-none-linux-gnueabi -mcpu=arm1022e | FileCheck %s --check-prefix=NO-STRICT-ALIGN
171; RUN: llc < %s -mtriple=armv5-none-linux-gnueabi -mcpu=arm1022e -mattr=+strict-align | FileCheck %s --check-prefix=STRICT-ALIGN
172
173; XSCALE:      .eabi_attribute 6, 5
174; XSCALE:      .eabi_attribute 8, 1
175; XSCALE:      .eabi_attribute 9, 1
176
177; DYN-ROUNDING: .eabi_attribute 19, 1
178
179; V6:   .eabi_attribute 6, 6
180; V6:   .eabi_attribute 8, 1
181;; We assume round-to-nearest by default (matches GCC)
182; V6-NOT:   .eabi_attribute 19
183;; The default choice made by llc is for a V6 CPU without an FPU.
184;; This is not an interesting detail, but for such CPUs, the default intention is to use
185;; software floating-point support. The choice is not important for targets without
186;; FPU support!
187; V6:   .eabi_attribute 20, 1
188; V6:   .eabi_attribute 21, 1
189; V6-NOT:   .eabi_attribute 22
190; V6:   .eabi_attribute 23, 3
191; V6:   .eabi_attribute 24, 1
192; V6:   .eabi_attribute 25, 1
193; V6-NOT:   .eabi_attribute 27
194; V6-NOT:   .eabi_attribute 28
195; V6-NOT:    .eabi_attribute 36
196; V6:    .eabi_attribute 38, 1
197; V6-NOT:    .eabi_attribute 42
198; V6-NOT:  .eabi_attribute 44
199; V6-NOT:    .eabi_attribute 68
200
201; V6-FAST-NOT:   .eabi_attribute 19
202;; Despite the V6 CPU having no FPU by default, we chose to flush to
203;; positive zero here. There's no hardware support doing this, but the
204;; fast maths software library might.
205; V6-FAST-NOT:   .eabi_attribute 20
206; V6-FAST-NOT:   .eabi_attribute 21
207; V6-FAST-NOT:   .eabi_attribute 22
208; V6-FAST:   .eabi_attribute 23, 1
209
210;; We emit 6, 12 for both v6-M and v6S-M, technically this is incorrect for
211;; V6-M, however we don't model the OS extension so this is fine.
212; V6M:  .eabi_attribute 6, 12
213; V6M-NOT:  .eabi_attribute 7
214; V6M:  .eabi_attribute 8, 0
215; V6M:  .eabi_attribute 9, 1
216; V6M-NOT:   .eabi_attribute 19
217;; The default choice made by llc is for a V6M CPU without an FPU.
218;; This is not an interesting detail, but for such CPUs, the default intention is to use
219;; software floating-point support. The choice is not important for targets without
220;; FPU support!
221; V6M:  .eabi_attribute 20, 1
222; V6M:   .eabi_attribute 21, 1
223; V6M-NOT:   .eabi_attribute 22
224; V6M:   .eabi_attribute 23, 3
225; V6M:  .eabi_attribute 24, 1
226; V6M:  .eabi_attribute 25, 1
227; V6M-NOT:  .eabi_attribute 27
228; V6M-NOT:  .eabi_attribute 28
229; V6M-NOT:  .eabi_attribute 36
230; V6M:  .eabi_attribute 38, 1
231; V6M-NOT:  .eabi_attribute 42
232; V6M-NOT:  .eabi_attribute 44
233; V6M-NOT:  .eabi_attribute 68
234
235; V6M-FAST-NOT:   .eabi_attribute 19
236;; Despite the V6M CPU having no FPU by default, we chose to flush to
237;; positive zero here. There's no hardware support doing this, but the
238;; fast maths software library might.
239; V6M-FAST-NOT:  .eabi_attribute 20
240; V6M-FAST-NOT:   .eabi_attribute 21
241; V6M-FAST-NOT:   .eabi_attribute 22
242; V6M-FAST:   .eabi_attribute 23, 1
243
244; ARM1156T2F-S: .cpu arm1156t2f-s
245; ARM1156T2F-S: .eabi_attribute 6, 8
246; ARM1156T2F-S: .eabi_attribute 8, 1
247; ARM1156T2F-S: .eabi_attribute 9, 2
248; ARM1156T2F-S: .fpu vfpv2
249; ARM1156T2F-S-NOT:   .eabi_attribute 19
250;; We default to IEEE 754 compliance
251; ARM1156T2F-S: .eabi_attribute 20, 1
252; ARM1156T2F-S: .eabi_attribute 21, 1
253; ARM1156T2F-S-NOT: .eabi_attribute 22
254; ARM1156T2F-S: .eabi_attribute 23, 3
255; ARM1156T2F-S: .eabi_attribute 24, 1
256; ARM1156T2F-S: .eabi_attribute 25, 1
257; ARM1156T2F-S-NOT: .eabi_attribute 27
258; ARM1156T2F-S-NOT: .eabi_attribute 28
259; ARM1156T2F-S-NOT: .eabi_attribute 36
260; ARM1156T2F-S: .eabi_attribute 38, 1
261; ARM1156T2F-S-NOT:    .eabi_attribute 42
262; ARM1156T2F-S-NOT:    .eabi_attribute 44
263; ARM1156T2F-S-NOT:    .eabi_attribute 68
264
265; ARM1156T2F-S-FAST-NOT:   .eabi_attribute 19
266;; V6 cores default to flush to positive zero (value 0). Note that value 2 is also equally
267;; valid for this core, it's an implementation defined question as to which of 0 and 2 you
268;; select. LLVM historically picks 0.
269; ARM1156T2F-S-FAST-NOT: .eabi_attribute 20
270; ARM1156T2F-S-FAST-NOT:   .eabi_attribute 21
271; ARM1156T2F-S-FAST-NOT:   .eabi_attribute 22
272; ARM1156T2F-S-FAST:   .eabi_attribute 23, 1
273
274; V7M:  .eabi_attribute 6, 10
275; V7M:  .eabi_attribute 7, 77
276; V7M:  .eabi_attribute 8, 0
277; V7M:  .eabi_attribute 9, 2
278; V7M-NOT:   .eabi_attribute 19
279;; The default choice made by llc is for a V7M CPU without an FPU.
280;; This is not an interesting detail, but for such CPUs, the default intention is to use
281;; software floating-point support. The choice is not important for targets without
282;; FPU support!
283; V7M:  .eabi_attribute 20, 1
284; V7M: .eabi_attribute 21, 1
285; V7M-NOT: .eabi_attribute 22
286; V7M: .eabi_attribute 23, 3
287; V7M:  .eabi_attribute 24, 1
288; V7M:  .eabi_attribute 25, 1
289; V7M-NOT:  .eabi_attribute 27
290; V7M-NOT:  .eabi_attribute 28
291; V7M-NOT:  .eabi_attribute 36
292; V7M:  .eabi_attribute 38, 1
293; V7M-NOT:  .eabi_attribute 42
294; V7M-NOT:  .eabi_attribute 44
295; V7M-NOT:  .eabi_attribute 68
296
297; V7M-FAST-NOT:   .eabi_attribute 19
298;; Despite the V7M CPU having no FPU by default, we chose to flush
299;; preserving sign. This matches what the hardware would do in the
300;; architecture revision were to exist on the current target.
301; V7M-FAST:  .eabi_attribute 20, 2
302; V7M-FAST-NOT:   .eabi_attribute 21
303; V7M-FAST-NOT:   .eabi_attribute 22
304; V7M-FAST:   .eabi_attribute 23, 1
305
306; V7:      .syntax unified
307; V7: .eabi_attribute 6, 10
308; V7-NOT:   .eabi_attribute 19
309;; In safe-maths mode we default to an IEEE 754 compliant choice.
310; V7: .eabi_attribute 20, 1
311; V7: .eabi_attribute 21, 1
312; V7-NOT: .eabi_attribute 22
313; V7: .eabi_attribute 23, 3
314; V7: .eabi_attribute 24, 1
315; V7: .eabi_attribute 25, 1
316; V7-NOT: .eabi_attribute 27
317; V7-NOT: .eabi_attribute 28
318; V7-NOT: .eabi_attribute 36
319; V7: .eabi_attribute 38, 1
320; V7-NOT:    .eabi_attribute 42
321; V7-NOT:    .eabi_attribute 44
322; V7-NOT:    .eabi_attribute 68
323
324; V7-FAST-NOT:   .eabi_attribute 19
325;; The default CPU does have an FPU and it must be VFPv3 or better, so it flushes
326;; denormals to zero preserving the sign.
327; V7-FAST: .eabi_attribute 20, 2
328; V7-FAST-NOT:   .eabi_attribute 21
329; V7-FAST-NOT:   .eabi_attribute 22
330; V7-FAST:   .eabi_attribute 23, 1
331
332; V8:      .syntax unified
333; V8: .eabi_attribute 67, "2.09"
334; V8: .eabi_attribute 6, 14
335; V8-NOT:   .eabi_attribute 19
336; V8: .eabi_attribute 20, 1
337; V8: .eabi_attribute 21, 1
338; V8-NOT: .eabi_attribute 22
339; V8: .eabi_attribute 23, 3
340; V8-NOT: .eabi_attribute 44
341
342; V8-FAST-NOT:   .eabi_attribute 19
343;; The default does have an FPU, and for V8-A, it flushes preserving sign.
344; V8-FAST: .eabi_attribute 20, 2
345; V8-FAST-NOT: .eabi_attribute 21
346; V8-FAST-NOT: .eabi_attribute 22
347; V8-FAST: .eabi_attribute 23, 1
348
349; Vt8:     .syntax unified
350; Vt8: .eabi_attribute 6, 14
351; Vt8-NOT:   .eabi_attribute 19
352; Vt8: .eabi_attribute 20, 1
353; Vt8: .eabi_attribute 21, 1
354; Vt8-NOT: .eabi_attribute 22
355; Vt8: .eabi_attribute 23, 3
356
357; V8-FPARMv8:      .syntax unified
358; V8-FPARMv8: .eabi_attribute 6, 14
359; V8-FPARMv8: .fpu fp-armv8
360
361; V8-NEON:      .syntax unified
362; V8-NEON: .eabi_attribute 6, 14
363; V8-NEON: .fpu neon
364; V8-NEON: .eabi_attribute 12, 3
365
366; V8-FPARMv8-NEON:      .syntax unified
367; V8-FPARMv8-NEON: .eabi_attribute 6, 14
368; V8-FPARMv8-NEON: .fpu neon-fp-armv8
369; V8-FPARMv8-NEON: .eabi_attribute 12, 3
370
371; V8-FPARMv8-NEON-CRYPTO:      .syntax unified
372; V8-FPARMv8-NEON-CRYPTO: .eabi_attribute 6, 14
373; V8-FPARMv8-NEON-CRYPTO: .fpu crypto-neon-fp-armv8
374; V8-FPARMv8-NEON-CRYPTO: .eabi_attribute 12, 3
375
376; Tag_CPU_unaligned_access
377; NO-STRICT-ALIGN: .eabi_attribute 34, 1
378; STRICT-ALIGN: .eabi_attribute 34, 0
379
380; Tag_CPU_arch  'ARMv7'
381; CORTEX-A7-CHECK: .eabi_attribute      6, 10
382; CORTEX-A7-NOFPU: .eabi_attribute      6, 10
383
384; CORTEX-A7-FPUV4: .eabi_attribute      6, 10
385
386; Tag_CPU_arch_profile 'A'
387; CORTEX-A7-CHECK: .eabi_attribute      7, 65
388; CORTEX-A7-NOFPU: .eabi_attribute      7, 65
389; CORTEX-A7-FPUV4: .eabi_attribute      7, 65
390
391; Tag_ARM_ISA_use
392; CORTEX-A7-CHECK: .eabi_attribute      8, 1
393; CORTEX-A7-NOFPU: .eabi_attribute      8, 1
394; CORTEX-A7-FPUV4: .eabi_attribute      8, 1
395
396; Tag_THUMB_ISA_use
397; CORTEX-A7-CHECK: .eabi_attribute      9, 2
398; CORTEX-A7-NOFPU: .eabi_attribute      9, 2
399; CORTEX-A7-FPUV4: .eabi_attribute      9, 2
400
401; CORTEX-A7-CHECK: .fpu neon-vfpv4
402; CORTEX-A7-NOFPU-NOT: .fpu
403; CORTEX-A7-FPUV4: .fpu vfpv4
404
405; CORTEX-A7-CHECK-NOT:   .eabi_attribute 19
406; Tag_ABI_FP_denormal
407;; We default to IEEE 754 compliance
408; CORTEX-A7-CHECK: .eabi_attribute      20, 1
409;; The A7 has VFPv3 support by default, so flush preserving sign.
410; CORTEX-A7-CHECK-FAST: .eabi_attribute 20, 2
411; CORTEX-A7-NOFPU: .eabi_attribute      20, 1
412;; Despite there being no FPU, we chose to flush to zero preserving
413;; sign. This matches what the hardware would do for this architecture
414;; revision.
415; CORTEX-A7-NOFPU-FAST: .eabi_attribute 20, 2
416; CORTEX-A7-FPUV4: .eabi_attribute      20, 1
417;; The VFPv4 FPU flushes preserving sign.
418; CORTEX-A7-FPUV4-FAST: .eabi_attribute 20, 2
419
420; Tag_ABI_FP_exceptions
421; CORTEX-A7-CHECK: .eabi_attribute      21, 1
422; CORTEX-A7-NOFPU: .eabi_attribute      21, 1
423; CORTEX-A7-FPUV4: .eabi_attribute      21, 1
424
425; Tag_ABI_FP_user_exceptions
426; CORTEX-A7-CHECK-NOT: .eabi_attribute      22
427; CORTEX-A7-NOFPU-NOT: .eabi_attribute      22
428; CORTEX-A7-FPUV4-NOT: .eabi_attribute      22
429
430; Tag_ABI_FP_number_model
431; CORTEX-A7-CHECK: .eabi_attribute      23, 3
432; CORTEX-A7-NOFPU: .eabi_attribute      23, 3
433; CORTEX-A7-FPUV4: .eabi_attribute      23, 3
434
435; Tag_ABI_align_needed
436; CORTEX-A7-CHECK: .eabi_attribute      24, 1
437; CORTEX-A7-NOFPU: .eabi_attribute      24, 1
438; CORTEX-A7-FPUV4: .eabi_attribute      24, 1
439
440; Tag_ABI_align_preserved
441; CORTEX-A7-CHECK: .eabi_attribute      25, 1
442; CORTEX-A7-NOFPU: .eabi_attribute      25, 1
443; CORTEX-A7-FPUV4: .eabi_attribute      25, 1
444
445; Tag_FP_HP_extension
446; CORTEX-A7-CHECK: .eabi_attribute      36, 1
447; CORTEX-A7-NOFPU-NOT: .eabi_attribute  36
448; CORTEX-A7-FPUV4: .eabi_attribute      36, 1
449
450; Tag_FP_16bit_format
451; CORTEX-A7-CHECK: .eabi_attribute      38, 1
452; CORTEX-A7-NOFPU: .eabi_attribute      38, 1
453; CORTEX-A7-FPUV4: .eabi_attribute      38, 1
454
455; Tag_MPextension_use
456; CORTEX-A7-CHECK: .eabi_attribute      42, 1
457; CORTEX-A7-NOFPU: .eabi_attribute      42, 1
458; CORTEX-A7-FPUV4: .eabi_attribute      42, 1
459
460; Tag_DIV_use
461; CORTEX-A7-CHECK: .eabi_attribute      44, 2
462; CORTEX-A7-NOFPU: .eabi_attribute      44, 2
463; CORTEX-A7-FPUV4: .eabi_attribute      44, 2
464
465; Tag_Virtualization_use
466; CORTEX-A7-CHECK: .eabi_attribute      68, 3
467; CORTEX-A7-NOFPU: .eabi_attribute      68, 3
468; CORTEX-A7-FPUV4: .eabi_attribute      68, 3
469
470; CORTEX-A5-DEFAULT:        .cpu    cortex-a5
471; CORTEX-A5-DEFAULT:        .eabi_attribute 6, 10
472; CORTEX-A5-DEFAULT:        .eabi_attribute 7, 65
473; CORTEX-A5-DEFAULT:        .eabi_attribute 8, 1
474; CORTEX-A5-DEFAULT:        .eabi_attribute 9, 2
475; CORTEX-A5-DEFAULT:        .fpu    neon-vfpv4
476; CORTEX-A5-NOT:   .eabi_attribute 19
477;; We default to IEEE 754 compliance
478; CORTEX-A5-DEFAULT:        .eabi_attribute 20, 1
479; CORTEX-A5-DEFAULT:        .eabi_attribute 21, 1
480; CORTEX-A5-DEFAULT-NOT:        .eabi_attribute 22
481; CORTEX-A5-DEFAULT:        .eabi_attribute 23, 3
482; CORTEX-A5-DEFAULT:        .eabi_attribute 24, 1
483; CORTEX-A5-DEFAULT:        .eabi_attribute 25, 1
484; CORTEX-A5-DEFAULT:        .eabi_attribute 42, 1
485; CORTEX-A5-DEFAULT-NOT:        .eabi_attribute 44
486; CORTEX-A5-DEFAULT:        .eabi_attribute 68, 1
487
488; CORTEX-A5-DEFAULT-FAST-NOT:   .eabi_attribute 19
489;; The A5 defaults to a VFPv4 FPU, so it flushed preserving sign when -ffast-math
490;; is given.
491; CORTEX-A5-DEFAULT-FAST:        .eabi_attribute 20, 2
492; CORTEX-A5-DEFAULT-FAST-NOT: .eabi_attribute 21
493; CORTEX-A5-DEFAULT-FAST-NOT: .eabi_attribute 22
494; CORTEX-A5-DEFAULT-FAST: .eabi_attribute 23, 1
495
496; CORTEX-A5-NONEON:        .cpu    cortex-a5
497; CORTEX-A5-NONEON:        .eabi_attribute 6, 10
498; CORTEX-A5-NONEON:        .eabi_attribute 7, 65
499; CORTEX-A5-NONEON:        .eabi_attribute 8, 1
500; CORTEX-A5-NONEON:        .eabi_attribute 9, 2
501; CORTEX-A5-NONEON:        .fpu    vfpv4-d16
502;; We default to IEEE 754 compliance
503; CORTEX-A5-NONEON:        .eabi_attribute 20, 1
504; CORTEX-A5-NONEON:        .eabi_attribute 21, 1
505; CORTEX-A5-NONEON-NOT:    .eabi_attribute 22
506; CORTEX-A5-NONEON:        .eabi_attribute 23, 3
507; CORTEX-A5-NONEON:        .eabi_attribute 24, 1
508; CORTEX-A5-NONEON:        .eabi_attribute 25, 1
509; CORTEX-A5-NONEON:        .eabi_attribute 42, 1
510; CORTEX-A5-NONEON:        .eabi_attribute 68, 1
511
512; CORTEX-A5-NONEON-FAST-NOT:   .eabi_attribute 19
513;; The A5 defaults to a VFPv4 FPU, so it flushed preserving sign when -ffast-math
514;; is given.
515; CORTEX-A5-NONEON-FAST:        .eabi_attribute 20, 2
516; CORTEX-A5-NONEON-FAST-NOT: .eabi_attribute 21
517; CORTEX-A5-NONEON-FAST-NOT: .eabi_attribute 22
518; CORTEX-A5-NONEON-FAST: .eabi_attribute 23, 1
519
520; CORTEX-A5-NOFPU:        .cpu    cortex-a5
521; CORTEX-A5-NOFPU:        .eabi_attribute 6, 10
522; CORTEX-A5-NOFPU:        .eabi_attribute 7, 65
523; CORTEX-A5-NOFPU:        .eabi_attribute 8, 1
524; CORTEX-A5-NOFPU:        .eabi_attribute 9, 2
525; CORTEX-A5-NOFPU-NOT:    .fpu
526; CORTEX-A5-NOFPU-NOT:   .eabi_attribute 19
527;; We default to IEEE 754 compliance
528; CORTEX-A5-NOFPU:        .eabi_attribute 20, 1
529; CORTEX-A5-NOFPU:        .eabi_attribute 21, 1
530; CORTEX-A5-NOFPU-NOT:    .eabi_attribute 22
531; CORTEX-A5-NOFPU:        .eabi_attribute 23, 3
532; CORTEX-A5-NOFPU:        .eabi_attribute 24, 1
533; CORTEX-A5-NOFPU:        .eabi_attribute 25, 1
534; CORTEX-A5-NOFPU:        .eabi_attribute 42, 1
535; CORTEX-A5-NOFPU:        .eabi_attribute 68, 1
536
537; CORTEX-A5-NOFPU-FAST-NOT:   .eabi_attribute 19
538;; Despite there being no FPU, we chose to flush to zero preserving
539;; sign. This matches what the hardware would do for this architecture
540;; revision.
541; CORTEX-A5-NOFPU-FAST: .eabi_attribute 20, 2
542; CORTEX-A5-NOFPU-FAST-NOT: .eabi_attribute 21
543; CORTEX-A5-NOFPU-FAST-NOT: .eabi_attribute 22
544; CORTEX-A5-NOFPU-FAST: .eabi_attribute 23, 1
545
546; CORTEX-A9-SOFT:  .cpu cortex-a9
547; CORTEX-A9-SOFT:  .eabi_attribute 6, 10
548; CORTEX-A9-SOFT:  .eabi_attribute 7, 65
549; CORTEX-A9-SOFT:  .eabi_attribute 8, 1
550; CORTEX-A9-SOFT:  .eabi_attribute 9, 2
551; CORTEX-A9-SOFT:  .fpu neon
552; CORTEX-A9-SOFT-NOT:   .eabi_attribute 19
553;; We default to IEEE 754 compliance
554; CORTEX-A9-SOFT:  .eabi_attribute 20, 1
555; CORTEX-A9-SOFT:  .eabi_attribute 21, 1
556; CORTEX-A9-SOFT-NOT:  .eabi_attribute 22
557; CORTEX-A9-SOFT:  .eabi_attribute 23, 3
558; CORTEX-A9-SOFT:  .eabi_attribute 24, 1
559; CORTEX-A9-SOFT:  .eabi_attribute 25, 1
560; CORTEX-A9-SOFT-NOT:  .eabi_attribute 27
561; CORTEX-A9-SOFT-NOT:  .eabi_attribute 28
562; CORTEX-A9-SOFT:  .eabi_attribute 36, 1
563; CORTEX-A9-SOFT:  .eabi_attribute 38, 1
564; CORTEX-A9-SOFT:  .eabi_attribute 42, 1
565; CORTEX-A9-SOFT-NOT:  .eabi_attribute 44
566; CORTEX-A9-SOFT:  .eabi_attribute 68, 1
567
568; CORTEX-A9-SOFT-FAST-NOT:   .eabi_attribute 19
569;; The A9 defaults to a VFPv3 FPU, so it flushes preseving sign when
570;; -ffast-math is specified.
571; CORTEX-A9-SOFT-FAST:  .eabi_attribute 20, 2
572; CORTEX-A5-SOFT-FAST-NOT: .eabi_attribute 21
573; CORTEX-A5-SOFT-FAST-NOT: .eabi_attribute 22
574; CORTEX-A5-SOFT-FAST: .eabi_attribute 23, 1
575
576; CORTEX-A9-HARD:  .cpu cortex-a9
577; CORTEX-A9-HARD:  .eabi_attribute 6, 10
578; CORTEX-A9-HARD:  .eabi_attribute 7, 65
579; CORTEX-A9-HARD:  .eabi_attribute 8, 1
580; CORTEX-A9-HARD:  .eabi_attribute 9, 2
581; CORTEX-A9-HARD:  .fpu neon
582; CORTEX-A9-HARD-NOT:   .eabi_attribute 19
583;; We default to IEEE 754 compliance
584; CORTEX-A9-HARD:  .eabi_attribute 20, 1
585; CORTEX-A9-HARD:  .eabi_attribute 21, 1
586; CORTEX-A9-HARD-NOT:  .eabi_attribute 22
587; CORTEX-A9-HARD:  .eabi_attribute 23, 3
588; CORTEX-A9-HARD:  .eabi_attribute 24, 1
589; CORTEX-A9-HARD:  .eabi_attribute 25, 1
590; CORTEX-A9-HARD-NOT:  .eabi_attribute 27
591; CORTEX-A9-HARD:  .eabi_attribute 28, 1
592; CORTEX-A9-HARD:  .eabi_attribute 36, 1
593; CORTEX-A9-HARD:  .eabi_attribute 38, 1
594; CORTEX-A9-HARD:  .eabi_attribute 42, 1
595; CORTEX-A9-HARD:  .eabi_attribute 68, 1
596
597; CORTEX-A9-HARD-FAST-NOT:   .eabi_attribute 19
598;; The A9 defaults to a VFPv3 FPU, so it flushes preseving sign when
599;; -ffast-math is specified.
600; CORTEX-A9-HARD-FAST:  .eabi_attribute 20, 2
601; CORTEX-A9-HARD-FAST-NOT:  .eabi_attribute 21
602; CORTEX-A9-HARD-FAST-NOT:  .eabi_attribute 22
603; CORTEX-A9-HARD-FAST:  .eabi_attribute 23, 1
604
605; CORTEX-A12-DEFAULT:  .cpu cortex-a12
606; CORTEX-A12-DEFAULT:  .eabi_attribute 6, 10
607; CORTEX-A12-DEFAULT:  .eabi_attribute 7, 65
608; CORTEX-A12-DEFAULT:  .eabi_attribute 8, 1
609; CORTEX-A12-DEFAULT:  .eabi_attribute 9, 2
610; CORTEX-A12-DEFAULT:  .fpu neon-vfpv4
611; CORTEX-A12-DEFAULT-NOT:   .eabi_attribute 19
612;; We default to IEEE 754 compliance
613; CORTEX-A12-DEFAULT:  .eabi_attribute 20, 1
614; CORTEX-A12-DEFAULT:  .eabi_attribute 21, 1
615; CORTEX-A12-DEFAULT-NOT:  .eabi_attribute 22
616; CORTEX-A12-DEFAULT:  .eabi_attribute 23, 3
617; CORTEX-A12-DEFAULT:  .eabi_attribute 24, 1
618; CORTEX-A12-DEFAULT:  .eabi_attribute 25, 1
619; CORTEX-A12-DEFAULT:  .eabi_attribute 42, 1
620; CORTEX-A12-DEFAULT:  .eabi_attribute 44, 2
621; CORTEX-A12-DEFAULT:  .eabi_attribute 68, 3
622
623; CORTEX-A12-DEFAULT-FAST-NOT:   .eabi_attribute 19
624;; The A12 defaults to a VFPv3 FPU, so it flushes preseving sign when
625;; -ffast-math is specified.
626; CORTEX-A12-DEFAULT-FAST:  .eabi_attribute 20, 2
627; CORTEX-A12-HARD-FAST-NOT:  .eabi_attribute 21
628; CORTEX-A12-HARD-FAST-NOT:  .eabi_attribute 22
629; CORTEX-A12-HARD-FAST:  .eabi_attribute 23, 1
630
631; CORTEX-A12-NOFPU:  .cpu cortex-a12
632; CORTEX-A12-NOFPU:  .eabi_attribute 6, 10
633; CORTEX-A12-NOFPU:  .eabi_attribute 7, 65
634; CORTEX-A12-NOFPU:  .eabi_attribute 8, 1
635; CORTEX-A12-NOFPU:  .eabi_attribute 9, 2
636; CORTEX-A12-NOFPU-NOT:  .fpu
637; CORTEX-A12-NOFPU-NOT:   .eabi_attribute 19
638;; We default to IEEE 754 compliance
639; CORTEX-A12-NOFPU:  .eabi_attribute 20, 1
640; CORTEX-A12-NOFPU:  .eabi_attribute 21, 1
641; CORTEX-A12-NOFPU-NOT:  .eabi_attribute 22
642; CORTEX-A12-NOFPU:  .eabi_attribute 23, 3
643; CORTEX-A12-NOFPU:  .eabi_attribute 24, 1
644; CORTEX-A12-NOFPU:  .eabi_attribute 25, 1
645; CORTEX-A12-NOFPU:  .eabi_attribute 42, 1
646; CORTEX-A12-NOFPU:  .eabi_attribute 44, 2
647; CORTEX-A12-NOFPU:  .eabi_attribute 68, 3
648
649; CORTEX-A12-NOFPU-FAST-NOT:   .eabi_attribute 19
650;; Despite there being no FPU, we chose to flush to zero preserving
651;; sign. This matches what the hardware would do for this architecture
652;; revision.
653; CORTEX-A12-NOFPU-FAST:  .eabi_attribute 20, 2
654; CORTEX-A12-NOFPU-FAST-NOT:  .eabi_attribute 21
655; CORTEX-A12-NOFPU-FAST-NOT:  .eabi_attribute 22
656; CORTEX-A12-NOFPU-FAST:  .eabi_attribute 23, 1
657
658; CORTEX-A15: .cpu cortex-a15
659; CORTEX-A15: .eabi_attribute 6, 10
660; CORTEX-A15: .eabi_attribute 7, 65
661; CORTEX-A15: .eabi_attribute 8, 1
662; CORTEX-A15: .eabi_attribute 9, 2
663; CORTEX-A15: .fpu neon-vfpv4
664; CORTEX-A15-NOT:   .eabi_attribute 19
665;; We default to IEEE 754 compliance
666; CORTEX-A15: .eabi_attribute 20, 1
667; CORTEX-A15: .eabi_attribute 21, 1
668; CORTEX-A15-NOT: .eabi_attribute 22
669; CORTEX-A15: .eabi_attribute 23, 3
670; CORTEX-A15: .eabi_attribute 24, 1
671; CORTEX-A15: .eabi_attribute 25, 1
672; CORTEX-A15-NOT: .eabi_attribute 27
673; CORTEX-A15-NOT: .eabi_attribute 28
674; CORTEX-A15: .eabi_attribute 36, 1
675; CORTEX-A15: .eabi_attribute 38, 1
676; CORTEX-A15: .eabi_attribute 42, 1
677; CORTEX-A15: .eabi_attribute 44, 2
678; CORTEX-A15: .eabi_attribute 68, 3
679
680; CORTEX-A15-FAST-NOT:   .eabi_attribute 19
681;; The A15 defaults to a VFPv3 FPU, so it flushes preseving sign when
682;; -ffast-math is specified.
683; CORTEX-A15-FAST: .eabi_attribute 20, 2
684; CORTEX-A15-FAST-NOT:  .eabi_attribute 21
685; CORTEX-A15-FAST-NOT:  .eabi_attribute 22
686; CORTEX-A15-FAST:  .eabi_attribute 23, 1
687
688; CORTEX-A17-DEFAULT:  .cpu cortex-a17
689; CORTEX-A17-DEFAULT:  .eabi_attribute 6, 10
690; CORTEX-A17-DEFAULT:  .eabi_attribute 7, 65
691; CORTEX-A17-DEFAULT:  .eabi_attribute 8, 1
692; CORTEX-A17-DEFAULT:  .eabi_attribute 9, 2
693; CORTEX-A17-DEFAULT:  .fpu neon-vfpv4
694; CORTEX-A17-DEFAULT-NOT:   .eabi_attribute 19
695;; We default to IEEE 754 compliance
696; CORTEX-A17-DEFAULT:  .eabi_attribute 20, 1
697; CORTEX-A17-DEFAULT:  .eabi_attribute 21, 1
698; CORTEX-A17-DEFAULT-NOT:  .eabi_attribute 22
699; CORTEX-A17-DEFAULT:  .eabi_attribute 23, 3
700; CORTEX-A17-DEFAULT:  .eabi_attribute 24, 1
701; CORTEX-A17-DEFAULT:  .eabi_attribute 25, 1
702; CORTEX-A17-DEFAULT:  .eabi_attribute 42, 1
703; CORTEX-A17-DEFAULT:  .eabi_attribute 44, 2
704; CORTEX-A17-DEFAULT:  .eabi_attribute 68, 3
705
706; CORTEX-A17-FAST-NOT:   .eabi_attribute 19
707;; The A17 defaults to a VFPv3 FPU, so it flushes preseving sign when
708;; -ffast-math is specified.
709; CORTEX-A17-FAST:  .eabi_attribute 20, 2
710; CORTEX-A17-FAST-NOT:  .eabi_attribute 21
711; CORTEX-A17-FAST-NOT:  .eabi_attribute 22
712; CORTEX-A17-FAST:  .eabi_attribute 23, 1
713
714; CORTEX-A17-NOFPU:  .cpu cortex-a17
715; CORTEX-A17-NOFPU:  .eabi_attribute 6, 10
716; CORTEX-A17-NOFPU:  .eabi_attribute 7, 65
717; CORTEX-A17-NOFPU:  .eabi_attribute 8, 1
718; CORTEX-A17-NOFPU:  .eabi_attribute 9, 2
719; CORTEX-A17-NOFPU-NOT:  .fpu
720; CORTEX-A17-NOFPU-NOT:   .eabi_attribute 19
721;; We default to IEEE 754 compliance
722; CORTEX-A17-NOFPU:  .eabi_attribute 20, 1
723; CORTEX-A17-NOFPU:  .eabi_attribute 21, 1
724; CORTEX-A17-NOFPU-NOT:  .eabi_attribute 22
725; CORTEX-A17-NOFPU:  .eabi_attribute 23, 3
726; CORTEX-A17-NOFPU:  .eabi_attribute 24, 1
727; CORTEX-A17-NOFPU:  .eabi_attribute 25, 1
728; CORTEX-A17-NOFPU:  .eabi_attribute 42, 1
729; CORTEX-A17-NOFPU:  .eabi_attribute 44, 2
730; CORTEX-A17-NOFPU:  .eabi_attribute 68, 3
731
732; CORTEX-A17-NOFPU-NOT:   .eabi_attribute 19
733;; Despite there being no FPU, we chose to flush to zero preserving
734;; sign. This matches what the hardware would do for this architecture
735;; revision.
736; CORTEX-A17-NOFPU-FAST:  .eabi_attribute 20, 2
737; CORTEX-A17-NOFPU-FAST-NOT:  .eabi_attribute 21
738; CORTEX-A17-NOFPU-FAST-NOT:  .eabi_attribute 22
739; CORTEX-A17-NOFPU-FAST:  .eabi_attribute 23, 1
740
741; CORTEX-M0:  .cpu cortex-m0
742; CORTEX-M0:  .eabi_attribute 6, 12
743; CORTEX-M0-NOT:  .eabi_attribute 7
744; CORTEX-M0:  .eabi_attribute 8, 0
745; CORTEX-M0:  .eabi_attribute 9, 1
746; CORTEX-M0-NOT:   .eabi_attribute 19
747;; We default to IEEE 754 compliance
748; CORTEX-M0:  .eabi_attribute 20, 1
749; CORTEX-M0:  .eabi_attribute 21, 1
750; CORTEX-M0-NOT:  .eabi_attribute 22
751; CORTEX-M0:  .eabi_attribute 23, 3
752; CORTEX-M0: .eabi_attribute 34, 0
753; CORTEX-M0:  .eabi_attribute 24, 1
754; CORTEX-M0:  .eabi_attribute 25, 1
755; CORTEX-M0-NOT:  .eabi_attribute 27
756; CORTEX-M0-NOT:  .eabi_attribute 28
757; CORTEX-M0-NOT:  .eabi_attribute 36
758; CORTEX-M0:  .eabi_attribute 38, 1
759; CORTEX-M0-NOT:  .eabi_attribute 42
760; CORTEX-M0-NOT:  .eabi_attribute 44
761; CORTEX-M0-NOT:  .eabi_attribute 68
762
763; CORTEX-M0-FAST-NOT:   .eabi_attribute 19
764;; Despite the M0 CPU having no FPU in this scenario, we chose to
765;; flush to positive zero here. There's no hardware support doing
766;; this, but the fast maths software library might and such behaviour
767;; would match hardware support on this architecture revision if it
768;; existed.
769; CORTEX-M0-FAST-NOT:  .eabi_attribute 20
770; CORTEX-M0-FAST-NOT:  .eabi_attribute 21
771; CORTEX-M0-FAST-NOT:  .eabi_attribute 22
772; CORTEX-M0-FAST:  .eabi_attribute 23, 1
773
774; CORTEX-M0PLUS:  .cpu cortex-m0plus
775; CORTEX-M0PLUS:  .eabi_attribute 6, 12
776; CORTEX-M0PLUS-NOT:  .eabi_attribute 7
777; CORTEX-M0PLUS:  .eabi_attribute 8, 0
778; CORTEX-M0PLUS:  .eabi_attribute 9, 1
779; CORTEX-M0PLUS-NOT:   .eabi_attribute 19
780;; We default to IEEE 754 compliance
781; CORTEX-M0PLUS:  .eabi_attribute 20, 1
782; CORTEX-M0PLUS:  .eabi_attribute 21, 1
783; CORTEX-M0PLUS-NOT:  .eabi_attribute 22
784; CORTEX-M0PLUS:  .eabi_attribute 23, 3
785; CORTEX-M0PLUS:  .eabi_attribute 24, 1
786; CORTEX-M0PLUS:  .eabi_attribute 25, 1
787; CORTEX-M0PLUS-NOT:  .eabi_attribute 27
788; CORTEX-M0PLUS-NOT:  .eabi_attribute 28
789; CORTEX-M0PLUS-NOT:  .eabi_attribute 36
790; CORTEX-M0PLUS:  .eabi_attribute 38, 1
791; CORTEX-M0PLUS-NOT:  .eabi_attribute 42
792; CORTEX-M0PLUS-NOT:  .eabi_attribute 44
793; CORTEX-M0PLUS-NOT:  .eabi_attribute 68
794
795; CORTEX-M0PLUS-FAST-NOT:   .eabi_attribute 19
796;; Despite the M0+ CPU having no FPU in this scenario, we chose to
797;; flush to positive zero here. There's no hardware support doing
798;; this, but the fast maths software library might and such behaviour
799;; would match hardware support on this architecture revision if it
800;; existed.
801; CORTEX-M0PLUS-FAST-NOT:  .eabi_attribute 20
802; CORTEX-M0PLUS-FAST-NOT:  .eabi_attribute 21
803; CORTEX-M0PLUS-FAST-NOT:  .eabi_attribute 22
804; CORTEX-M0PLUS-FAST:  .eabi_attribute 23, 1
805
806; CORTEX-M1:  .cpu cortex-m1
807; CORTEX-M1:  .eabi_attribute 6, 12
808; CORTEX-M1-NOT:  .eabi_attribute 7
809; CORTEX-M1:  .eabi_attribute 8, 0
810; CORTEX-M1:  .eabi_attribute 9, 1
811; CORTEX-M1-NOT:   .eabi_attribute 19
812;; We default to IEEE 754 compliance
813; CORTEX-M1:  .eabi_attribute 20, 1
814; CORTEX-M1:  .eabi_attribute 21, 1
815; CORTEX-M1-NOT:  .eabi_attribute 22
816; CORTEX-M1:  .eabi_attribute 23, 3
817; CORTEX-M1:  .eabi_attribute 24, 1
818; CORTEX-M1:  .eabi_attribute 25, 1
819; CORTEX-M1-NOT:  .eabi_attribute 27
820; CORTEX-M1-NOT:  .eabi_attribute 28
821; CORTEX-M1-NOT:  .eabi_attribute 36
822; CORTEX-M1:  .eabi_attribute 38, 1
823; CORTEX-M1-NOT:  .eabi_attribute 42
824; CORTEX-M1-NOT:  .eabi_attribute 44
825; CORTEX-M1-NOT:  .eabi_attribute 68
826
827; CORTEX-M1-FAST-NOT:   .eabi_attribute 19
828;; Despite the M1 CPU having no FPU in this scenario, we chose to
829;; flush to positive zero here. There's no hardware support doing
830;; this, but the fast maths software library might and such behaviour
831;; would match hardware support on this architecture revision if it
832;; existed.
833; CORTEX-M1-FAST-NOT:  .eabi_attribute 20
834; CORTEX-M1-FAST-NOT:  .eabi_attribute 21
835; CORTEX-M1-FAST-NOT:  .eabi_attribute 22
836; CORTEX-M1-FAST:  .eabi_attribute 23, 1
837
838; SC000:  .cpu sc000
839; SC000:  .eabi_attribute 6, 12
840; SC000-NOT:  .eabi_attribute 7
841; SC000:  .eabi_attribute 8, 0
842; SC000:  .eabi_attribute 9, 1
843; SC000-NOT:   .eabi_attribute 19
844;; We default to IEEE 754 compliance
845; SC000:  .eabi_attribute 20, 1
846; SC000:  .eabi_attribute 21, 1
847; SC000-NOT:  .eabi_attribute 22
848; SC000:  .eabi_attribute 23, 3
849; SC000:  .eabi_attribute 24, 1
850; SC000:  .eabi_attribute 25, 1
851; SC000-NOT:  .eabi_attribute 27
852; SC000-NOT:  .eabi_attribute 28
853; SC000-NOT:  .eabi_attribute 36
854; SC000:  .eabi_attribute 38, 1
855; SC000-NOT:  .eabi_attribute 42
856; SC000-NOT:  .eabi_attribute 44
857; SC000-NOT:  .eabi_attribute 68
858
859; SC000-FAST-NOT:   .eabi_attribute 19
860;; Despite the SC000 CPU having no FPU in this scenario, we chose to
861;; flush to positive zero here. There's no hardware support doing
862;; this, but the fast maths software library might and such behaviour
863;; would match hardware support on this architecture revision if it
864;; existed.
865; SC000-FAST-NOT:  .eabi_attribute 20
866; SC000-FAST-NOT:  .eabi_attribute 21
867; SC000-FAST-NOT:  .eabi_attribute 22
868; SC000-FAST:  .eabi_attribute 23, 1
869
870; CORTEX-M3:  .cpu cortex-m3
871; CORTEX-M3:  .eabi_attribute 6, 10
872; CORTEX-M3:  .eabi_attribute 7, 77
873; CORTEX-M3:  .eabi_attribute 8, 0
874; CORTEX-M3:  .eabi_attribute 9, 2
875; CORTEX-M3-NOT:   .eabi_attribute 19
876;; We default to IEEE 754 compliance
877; CORTEX-M3:  .eabi_attribute 20, 1
878; CORTEX-M3:  .eabi_attribute 21, 1
879; CORTEX-M3-NOT:  .eabi_attribute 22
880; CORTEX-M3:  .eabi_attribute 23, 3
881; CORTEX-M3:  .eabi_attribute 24, 1
882; CORTEX-M3:  .eabi_attribute 25, 1
883; CORTEX-M3-NOT:  .eabi_attribute 27
884; CORTEX-M3-NOT:  .eabi_attribute 28
885; CORTEX-M3-NOT:  .eabi_attribute 36
886; CORTEX-M3:  .eabi_attribute 38, 1
887; CORTEX-M3-NOT:  .eabi_attribute 42
888; CORTEX-M3-NOT:  .eabi_attribute 44
889; CORTEX-M3-NOT:  .eabi_attribute 68
890
891; CORTEX-M3-FAST-NOT:   .eabi_attribute 19
892;; Despite there being no FPU, we chose to flush to zero preserving
893;; sign. This matches what the hardware would do for this architecture
894;; revision.
895; CORTEX-M3-FAST:  .eabi_attribute 20, 2
896; CORTEX-M3-FAST-NOT:  .eabi_attribute 21
897; CORTEX-M3-FAST-NOT:  .eabi_attribute 22
898; CORTEX-M3-FAST:  .eabi_attribute 23, 1
899
900; SC300:  .cpu sc300
901; SC300:  .eabi_attribute 6, 10
902; SC300:  .eabi_attribute 7, 77
903; SC300:  .eabi_attribute 8, 0
904; SC300:  .eabi_attribute 9, 2
905; SC300-NOT:   .eabi_attribute 19
906;; We default to IEEE 754 compliance
907; SC300:  .eabi_attribute 20, 1
908; SC300:  .eabi_attribute 21, 1
909; SC300-NOT:  .eabi_attribute 22
910; SC300:  .eabi_attribute 23, 3
911; SC300:  .eabi_attribute 24, 1
912; SC300:  .eabi_attribute 25, 1
913; SC300-NOT:  .eabi_attribute 27
914; SC300-NOT:  .eabi_attribute 28
915; SC300-NOT:  .eabi_attribute 36
916; SC300:  .eabi_attribute 38, 1
917; SC300-NOT:  .eabi_attribute 42
918; SC300-NOT:  .eabi_attribute 44
919; SC300-NOT:  .eabi_attribute 68
920
921; SC300-FAST-NOT:   .eabi_attribute 19
922;; Despite there being no FPU, we chose to flush to zero preserving
923;; sign. This matches what the hardware would do for this architecture
924;; revision.
925; SC300-FAST:  .eabi_attribute 20, 2
926; SC300-FAST-NOT:  .eabi_attribute 21
927; SC300-FAST-NOT:  .eabi_attribute 22
928; SC300-FAST:  .eabi_attribute 23, 1
929
930; CORTEX-M4-SOFT:  .cpu cortex-m4
931; CORTEX-M4-SOFT:  .eabi_attribute 6, 13
932; CORTEX-M4-SOFT:  .eabi_attribute 7, 77
933; CORTEX-M4-SOFT:  .eabi_attribute 8, 0
934; CORTEX-M4-SOFT:  .eabi_attribute 9, 2
935; CORTEX-M4-SOFT:  .fpu fpv4-sp-d16
936; CORTEX-M4-SOFT-NOT:   .eabi_attribute 19
937;; We default to IEEE 754 compliance
938; CORTEX-M4-SOFT:  .eabi_attribute 20, 1
939; CORTEX-M4-SOFT:  .eabi_attribute 21, 1
940; CORTEX-M4-SOFT-NOT:  .eabi_attribute 22
941; CORTEX-M4-SOFT:  .eabi_attribute 23, 3
942; CORTEX-M4-SOFT:  .eabi_attribute 24, 1
943; CORTEX-M4-SOFT:  .eabi_attribute 25, 1
944; CORTEX-M4-SOFT:  .eabi_attribute 27, 1
945; CORTEX-M4-SOFT-NOT:  .eabi_attribute 28
946; CORTEX-M4-SOFT:  .eabi_attribute 36, 1
947; CORTEX-M4-SOFT:  .eabi_attribute 38, 1
948; CORTEX-M4-SOFT-NOT:  .eabi_attribute 42
949; CORTEX-M4-SOFT-NOT:  .eabi_attribute 44
950; CORTEX-M4-SOFT-NOT:  .eabi_attribute 68
951
952; CORTEX-M4-SOFT-FAST-NOT:   .eabi_attribute 19
953;; The M4 defaults to a VFPv4 FPU, so it flushes preseving sign when
954;; -ffast-math is specified.
955; CORTEX-M4-SOFT-FAST:  .eabi_attribute 20, 2
956; CORTEX-M4-SOFT-FAST-NOT:  .eabi_attribute 21
957; CORTEX-M4-SOFT-FAST-NOT:  .eabi_attribute 22
958; CORTEX-M4-SOFT-FAST:  .eabi_attribute 23, 1
959
960; CORTEX-M4-HARD:  .cpu cortex-m4
961; CORTEX-M4-HARD:  .eabi_attribute 6, 13
962; CORTEX-M4-HARD:  .eabi_attribute 7, 77
963; CORTEX-M4-HARD:  .eabi_attribute 8, 0
964; CORTEX-M4-HARD:  .eabi_attribute 9, 2
965; CORTEX-M4-HARD:  .fpu fpv4-sp-d16
966; CORTEX-M4-HARD-NOT:   .eabi_attribute 19
967;; We default to IEEE 754 compliance
968; CORTEX-M4-HARD:  .eabi_attribute 20, 1
969; CORTEX-M4-HARD:  .eabi_attribute 21, 1
970; CORTEX-M4-HARD-NOT:  .eabi_attribute 22
971; CORTEX-M4-HARD:  .eabi_attribute 23, 3
972; CORTEX-M4-HARD:  .eabi_attribute 24, 1
973; CORTEX-M4-HARD:  .eabi_attribute 25, 1
974; CORTEX-M4-HARD:  .eabi_attribute 27, 1
975; CORTEX-M4-HARD:  .eabi_attribute 28, 1
976; CORTEX-M4-HARD:  .eabi_attribute 36, 1
977; CORTEX-M4-HARD:  .eabi_attribute 38, 1
978; CORTEX-M4-HARD-NOT:  .eabi_attribute 42
979; CORTEX-M4-HARD-NOT:  .eabi_attribute 44
980; CORTEX-M4-HARD-NOT:  .eabi_attribute 68
981
982; CORTEX-M4-HARD-FAST-NOT:   .eabi_attribute 19
983;; The M4 defaults to a VFPv4 FPU, so it flushes preseving sign when
984;; -ffast-math is specified.
985; CORTEX-M4-HARD-FAST:  .eabi_attribute 20, 2
986; CORTEX-M4-HARD-FAST-NOT:  .eabi_attribute 21
987; CORTEX-M4-HARD-FAST-NOT:  .eabi_attribute 22
988; CORTEX-M4-HARD-FAST:  .eabi_attribute 23, 1
989
990; CORTEX-M7:  .cpu    cortex-m7
991; CORTEX-M7:  .eabi_attribute 6, 13
992; CORTEX-M7:  .eabi_attribute 7, 77
993; CORTEX-M7:  .eabi_attribute 8, 0
994; CORTEX-M7:  .eabi_attribute 9, 2
995; CORTEX-M7-SOFT-NOT: .fpu
996; CORTEX-M7-SINGLE:  .fpu fpv5-sp-d16
997; CORTEX-M7-DOUBLE:  .fpu fpv5-d16
998; CORTEX-M7:  .eabi_attribute 17, 1
999; CORTEX-M7-NOT:   .eabi_attribute 19
1000;; We default to IEEE 754 compliance
1001; CORTEX-M7:  .eabi_attribute 20, 1
1002; CORTEX-M7:  .eabi_attribute 21, 1
1003; CORTEX-M7-NOT:  .eabi_attribute 22
1004; CORTEX-M7:  .eabi_attribute 23, 3
1005; CORTEX-M7:  .eabi_attribute 24, 1
1006; CORTEX-M7:  .eabi_attribute 25, 1
1007; CORTEX-M7-SOFT-NOT: .eabi_attribute 27
1008; CORTEX-M7-SINGLE:  .eabi_attribute 27, 1
1009; CORTEX-M7-DOUBLE-NOT: .eabi_attribute 27
1010; CORTEX-M7:  .eabi_attribute 36, 1
1011; CORTEX-M7:  .eabi_attribute 38, 1
1012; CORTEX-M7-NOT:  .eabi_attribute 44
1013; CORTEX-M7:  .eabi_attribute 14, 0
1014
1015; CORTEX-M7-NOFPU-FAST-NOT:   .eabi_attribute 19
1016;; The M7 has the ARMv8 FP unit, which always flushes preserving sign.
1017; CORTEX-M7-FAST:  .eabi_attribute 20, 2
1018;; Despite there being no FPU, we chose to flush to zero preserving
1019;; sign. This matches what the hardware would do for this architecture
1020;; revision.
1021; CORTEX-M7-NOFPU-FAST: .eabi_attribute 20, 2
1022; CORTEX-M7-NOFPU-FAST-NOT:  .eabi_attribute 21
1023; CORTEX-M7-NOFPU-FAST-NOT:  .eabi_attribute 22
1024; CORTEX-M7-NOFPU-FAST:  .eabi_attribute 23, 1
1025
1026; CORTEX-R4:  .cpu cortex-r4
1027; CORTEX-R4:  .eabi_attribute 6, 10
1028; CORTEX-R4:  .eabi_attribute 7, 82
1029; CORTEX-R4:  .eabi_attribute 8, 1
1030; CORTEX-R4:  .eabi_attribute 9, 2
1031; CORTEX-R4-NOT:  .fpu vfpv3-d16
1032; CORTEX-R4-NOT:   .eabi_attribute 19
1033;; We default to IEEE 754 compliance
1034; CORTEX-R4:  .eabi_attribute 20, 1
1035; CORTEX-R4:  .eabi_attribute 21, 1
1036; CORTEX-R4-NOT:  .eabi_attribute 22
1037; CORTEX-R4:  .eabi_attribute 23, 3
1038; CORTEX-R4:  .eabi_attribute 24, 1
1039; CORTEX-R4:  .eabi_attribute 25, 1
1040; CORTEX-R4-NOT:  .eabi_attribute 28
1041; CORTEX-R4-NOT:  .eabi_attribute 36
1042; CORTEX-R4:  .eabi_attribute 38, 1
1043; CORTEX-R4-NOT:  .eabi_attribute 42
1044; CORTEX-R4-NOT:  .eabi_attribute 44
1045; CORTEX-R4-NOT:  .eabi_attribute 68
1046
1047; CORTEX-R4F:  .cpu cortex-r4f
1048; CORTEX-R4F:  .eabi_attribute 6, 10
1049; CORTEX-R4F:  .eabi_attribute 7, 82
1050; CORTEX-R4F:  .eabi_attribute 8, 1
1051; CORTEX-R4F:  .eabi_attribute 9, 2
1052; CORTEX-R4F:  .fpu vfpv3-d16
1053; CORTEX-R4F-NOT:   .eabi_attribute 19
1054;; We default to IEEE 754 compliance
1055; CORTEX-R4F:  .eabi_attribute 20, 1
1056; CORTEX-R4F:  .eabi_attribute 21, 1
1057; CORTEX-R4F-NOT:  .eabi_attribute 22
1058; CORTEX-R4F:  .eabi_attribute 23, 3
1059; CORTEX-R4F:  .eabi_attribute 24, 1
1060; CORTEX-R4F:  .eabi_attribute 25, 1
1061; CORTEX-R4F-NOT:  .eabi_attribute 27, 1
1062; CORTEX-R4F-NOT:  .eabi_attribute 28
1063; CORTEX-R4F-NOT:  .eabi_attribute 36
1064; CORTEX-R4F:  .eabi_attribute 38, 1
1065; CORTEX-R4F-NOT:  .eabi_attribute 42
1066; CORTEX-R4F-NOT:  .eabi_attribute 44
1067; CORTEX-R4F-NOT:  .eabi_attribute 68
1068
1069; CORTEX-R5:  .cpu cortex-r5
1070; CORTEX-R5:  .eabi_attribute 6, 10
1071; CORTEX-R5:  .eabi_attribute 7, 82
1072; CORTEX-R5:  .eabi_attribute 8, 1
1073; CORTEX-R5:  .eabi_attribute 9, 2
1074; CORTEX-R5:  .fpu vfpv3-d16
1075; CORTEX-R5-NOT:   .eabi_attribute 19
1076;; We default to IEEE 754 compliance
1077; CORTEX-R5:  .eabi_attribute 20, 1
1078; CORTEX-R5:  .eabi_attribute 21, 1
1079; CORTEX-R5-NOT:  .eabi_attribute 22
1080; CORTEX-R5:  .eabi_attribute 23, 3
1081; CORTEX-R5:  .eabi_attribute 24, 1
1082; CORTEX-R5:  .eabi_attribute 25, 1
1083; CORTEX-R5-NOT:  .eabi_attribute 27, 1
1084; CORTEX-R5-NOT:  .eabi_attribute 28
1085; CORTEX-R5-NOT:  .eabi_attribute 36
1086; CORTEX-R5:  .eabi_attribute 38, 1
1087; CORTEX-R5-NOT:  .eabi_attribute 42
1088; CORTEX-R5:  .eabi_attribute 44, 2
1089; CORTEX-R5-NOT:  .eabi_attribute 68
1090
1091; CORTEX-R5-FAST-NOT:   .eabi_attribute 19
1092;; The R5 has the VFPv3 FP unit, which always flushes preserving sign.
1093; CORTEX-R5-FAST:  .eabi_attribute 20, 2
1094; CORTEX-R5-FAST-NOT:  .eabi_attribute 21
1095; CORTEX-R5-FAST-NOT:  .eabi_attribute 22
1096; CORTEX-R5-FAST:  .eabi_attribute 23, 1
1097
1098; CORTEX-R7:  .cpu cortex-r7
1099; CORTEX-R7:  .eabi_attribute 6, 10
1100; CORTEX-R7:  .eabi_attribute 7, 82
1101; CORTEX-R7:  .eabi_attribute 8, 1
1102; CORTEX-R7:  .eabi_attribute 9, 2
1103; CORTEX-R7:  .fpu vfpv3xd
1104; CORTEX-R7-NOT:   .eabi_attribute 19
1105;; We default to IEEE 754 compliance
1106; CORTEX-R7:  .eabi_attribute 20, 1
1107; CORTEX-R7:  .eabi_attribute 21, 1
1108; CORTEX-R7-NOT:  .eabi_attribute 22
1109; CORTEX-R7:  .eabi_attribute 23, 3
1110; CORTEX-R7:  .eabi_attribute 24, 1
1111; CORTEX-R7:  .eabi_attribute 25, 1
1112; CORTEX-R7:  .eabi_attribute 27, 1
1113; CORTEX-R7-NOT:  .eabi_attribute 28
1114; CORTEX-R7:  .eabi_attribute 36, 1
1115; CORTEX-R7:  .eabi_attribute 38, 1
1116; CORTEX-R7:  .eabi_attribute 42, 1
1117; CORTEX-R7:  .eabi_attribute 44, 2
1118; CORTEX-R7-NOT:  .eabi_attribute 68
1119
1120; CORTEX-R7-FAST-NOT:   .eabi_attribute 19
1121;; The R7 has the VFPv3 FP unit, which always flushes preserving sign.
1122; CORTEX-R7-FAST:  .eabi_attribute 20, 2
1123; CORTEX-R7-FAST-NOT:  .eabi_attribute 21
1124; CORTEX-R7-FAST-NOT:  .eabi_attribute 22
1125; CORTEX-R7-FAST:  .eabi_attribute 23, 1
1126
1127; CORTEX-A35:  .cpu cortex-a35
1128; CORTEX-A35:  .eabi_attribute 6, 14
1129; CORTEX-A35:  .eabi_attribute 7, 65
1130; CORTEX-A35:  .eabi_attribute 8, 1
1131; CORTEX-A35:  .eabi_attribute 9, 2
1132; CORTEX-A35:  .fpu crypto-neon-fp-armv8
1133; CORTEX-A35:  .eabi_attribute 12, 3
1134; CORTEX-A35-NOT:   .eabi_attribute 19
1135;; We default to IEEE 754 compliance
1136; CORTEX-A35:  .eabi_attribute 20, 1
1137; CORTEX-A35:  .eabi_attribute 21, 1
1138; CORTEX-A35-NOT:  .eabi_attribute 22
1139; CORTEX-A35:  .eabi_attribute 23, 3
1140; CORTEX-A35:  .eabi_attribute 24, 1
1141; CORTEX-A35:  .eabi_attribute 25, 1
1142; CORTEX-A35-NOT:  .eabi_attribute 27
1143; CORTEX-A35-NOT:  .eabi_attribute 28
1144; CORTEX-A35:  .eabi_attribute 36, 1
1145; CORTEX-A35:  .eabi_attribute 38, 1
1146; CORTEX-A35:  .eabi_attribute 42, 1
1147; CORTEX-A35-NOT:  .eabi_attribute 44
1148; CORTEX-A35:  .eabi_attribute 68, 3
1149
1150; CORTEX-A35-FAST-NOT:   .eabi_attribute 19
1151;; The A35 has the ARMv8 FP unit, which always flushes preserving sign.
1152; CORTEX-A35-FAST:  .eabi_attribute 20, 2
1153; CORTEX-A35-FAST-NOT:  .eabi_attribute 21
1154; CORTEX-A35-FAST-NOT:  .eabi_attribute 22
1155; CORTEX-A35-FAST:  .eabi_attribute 23, 1
1156
1157; CORTEX-A53:  .cpu cortex-a53
1158; CORTEX-A53:  .eabi_attribute 6, 14
1159; CORTEX-A53:  .eabi_attribute 7, 65
1160; CORTEX-A53:  .eabi_attribute 8, 1
1161; CORTEX-A53:  .eabi_attribute 9, 2
1162; CORTEX-A53:  .fpu crypto-neon-fp-armv8
1163; CORTEX-A53:  .eabi_attribute 12, 3
1164; CORTEX-A53-NOT:   .eabi_attribute 19
1165;; We default to IEEE 754 compliance
1166; CORTEX-A53:  .eabi_attribute 20, 1
1167; CORTEX-A53:  .eabi_attribute 21, 1
1168; CORTEX-A53-NOT:  .eabi_attribute 22
1169; CORTEX-A53:  .eabi_attribute 23, 3
1170; CORTEX-A53:  .eabi_attribute 24, 1
1171; CORTEX-A53:  .eabi_attribute 25, 1
1172; CORTEX-A53-NOT:  .eabi_attribute 27
1173; CORTEX-A53-NOT:  .eabi_attribute 28
1174; CORTEX-A53:  .eabi_attribute 36, 1
1175; CORTEX-A53:  .eabi_attribute 38, 1
1176; CORTEX-A53:  .eabi_attribute 42, 1
1177; CORTEX-A53-NOT:  .eabi_attribute 44
1178; CORTEX-A53:  .eabi_attribute 68, 3
1179
1180; CORTEX-A53-FAST-NOT:   .eabi_attribute 19
1181;; The A53 has the ARMv8 FP unit, which always flushes preserving sign.
1182; CORTEX-A53-FAST:  .eabi_attribute 20, 2
1183; CORTEX-A53-FAST-NOT:  .eabi_attribute 21
1184; CORTEX-A53-FAST-NOT:  .eabi_attribute 22
1185; CORTEX-A53-FAST:  .eabi_attribute 23, 1
1186
1187; CORTEX-A57:  .cpu cortex-a57
1188; CORTEX-A57:  .eabi_attribute 6, 14
1189; CORTEX-A57:  .eabi_attribute 7, 65
1190; CORTEX-A57:  .eabi_attribute 8, 1
1191; CORTEX-A57:  .eabi_attribute 9, 2
1192; CORTEX-A57:  .fpu crypto-neon-fp-armv8
1193; CORTEX-A57:  .eabi_attribute 12, 3
1194; CORTEX-A57-NOT:   .eabi_attribute 19
1195;; We default to IEEE 754 compliance
1196; CORTEX-A57:  .eabi_attribute 20, 1
1197; CORTEX-A57:  .eabi_attribute 21, 1
1198; CORTEX-A57-NOT:  .eabi_attribute 22
1199; CORTEX-A57:  .eabi_attribute 23, 3
1200; CORTEX-A57:  .eabi_attribute 24, 1
1201; CORTEX-A57:  .eabi_attribute 25, 1
1202; CORTEX-A57-NOT:  .eabi_attribute 27
1203; CORTEX-A57-NOT:  .eabi_attribute 28
1204; CORTEX-A57:  .eabi_attribute 36, 1
1205; CORTEX-A57:  .eabi_attribute 38, 1
1206; CORTEX-A57:  .eabi_attribute 42, 1
1207; CORTEX-A57-NOT:  .eabi_attribute 44
1208; CORTEX-A57:  .eabi_attribute 68, 3
1209
1210; CORTEX-A57-FAST-NOT:   .eabi_attribute 19
1211;; The A57 has the ARMv8 FP unit, which always flushes preserving sign.
1212; CORTEX-A57-FAST:  .eabi_attribute 20, 2
1213; CORTEX-A57-FAST-NOT:  .eabi_attribute 21
1214; CORTEX-A57-FAST-NOT:  .eabi_attribute 22
1215; CORTEX-A57-FAST:  .eabi_attribute 23, 1
1216
1217; CORTEX-A72:  .cpu cortex-a72
1218; CORTEX-A72:  .eabi_attribute 6, 14
1219; CORTEX-A72:  .eabi_attribute 7, 65
1220; CORTEX-A72:  .eabi_attribute 8, 1
1221; CORTEX-A72:  .eabi_attribute 9, 2
1222; CORTEX-A72:  .fpu crypto-neon-fp-armv8
1223; CORTEX-A72:  .eabi_attribute 12, 3
1224; CORTEX-A72-NOT:   .eabi_attribute 19
1225;; We default to IEEE 754 compliance
1226; CORTEX-A72:  .eabi_attribute 20, 1
1227; CORTEX-A72:  .eabi_attribute 21, 1
1228; CORTEX-A72-NOT:  .eabi_attribute 22
1229; CORTEX-A72:  .eabi_attribute 23, 3
1230; CORTEX-A72:  .eabi_attribute 24, 1
1231; CORTEX-A72:  .eabi_attribute 25, 1
1232; CORTEX-A72-NOT:  .eabi_attribute 27
1233; CORTEX-A72-NOT:  .eabi_attribute 28
1234; CORTEX-A72:  .eabi_attribute 36, 1
1235; CORTEX-A72:  .eabi_attribute 38, 1
1236; CORTEX-A72:  .eabi_attribute 42, 1
1237; CORTEX-A72-NOT:  .eabi_attribute 44
1238; CORTEX-A72:  .eabi_attribute 68, 3
1239
1240; CORTEX-A72-FAST-NOT:   .eabi_attribute 19
1241;; The A72 has the ARMv8 FP unit, which always flushes preserving sign.
1242; CORTEX-A72-FAST:  .eabi_attribute 20, 2
1243; CORTEX-A72-FAST-NOT:  .eabi_attribute 21
1244; CORTEX-A72-FAST-NOT:  .eabi_attribute 22
1245; CORTEX-A72-FAST:  .eabi_attribute 23, 1
1246
1247; EXYNOS-M1:  .cpu exynos-m1
1248; EXYNOS-M1:  .eabi_attribute 6, 14
1249; EXYNOS-M1:  .eabi_attribute 7, 65
1250; EXYNOS-M1:  .eabi_attribute 8, 1
1251; EXYNOS-M1:  .eabi_attribute 9, 2
1252; EXYNOS-M1:  .fpu crypto-neon-fp-armv8
1253; EXYNOS-M1:  .eabi_attribute 12, 3
1254; EXYNOS-M1-NOT:   .eabi_attribute 19
1255;; We default to IEEE 754 compliance
1256; EXYNOS-M1:  .eabi_attribute 20, 1
1257; EXYNOS-M1:  .eabi_attribute 21, 1
1258; EXYNOS-M1-NOT:  .eabi_attribute 22
1259; EXYNOS-M1:  .eabi_attribute 23, 3
1260; EXYNOS-M1:  .eabi_attribute 24, 1
1261; EXYNOS-M1:  .eabi_attribute 25, 1
1262; EXYNOS-M1-NOT:  .eabi_attribute 27
1263; EXYNOS-M1-NOT:  .eabi_attribute 28
1264; EXYNOS-M1:  .eabi_attribute 36, 1
1265; EXYNOS-M1:  .eabi_attribute 38, 1
1266; EXYNOS-M1:  .eabi_attribute 42, 1
1267; EXYNOS-M1-NOT:  .eabi_attribute 44
1268; EXYNOS-M15:  .eabi_attribute 68, 3
1269
1270; EXYNOS-M1-FAST-NOT:   .eabi_attribute 19
1271;; The exynos-m1 has the ARMv8 FP unit, which always flushes preserving sign.
1272; EXYNOS-M1-FAST:  .eabi_attribute 20, 2
1273; EXYNOS-M1-FAST-NOT:  .eabi_attribute 21
1274; EXYNOS-M1-FAST-NOT:  .eabi_attribute 22
1275; EXYNOS-M1-FAST:  .eabi_attribute 23, 1
1276
1277; GENERIC-FPU-VFPV3-FP16: .fpu vfpv3-fp16
1278; GENERIC-FPU-VFPV3-D16-FP16: .fpu vfpv3-d16-fp16
1279; GENERIC-FPU-VFPV3XD: .fpu vfpv3xd
1280; GENERIC-FPU-VFPV3XD-FP16: .fpu vfpv3xd-fp16
1281; GENERIC-FPU-NEON-FP16: .fpu neon-fp16
1282
1283; GENERIC-ARMV8_1-A:  .eabi_attribute 6, 14
1284; GENERIC-ARMV8_1-A:  .eabi_attribute 7, 65
1285; GENERIC-ARMV8_1-A:  .eabi_attribute 8, 1
1286; GENERIC-ARMV8_1-A:  .eabi_attribute 9, 2
1287; GENERIC-ARMV8_1-A:  .fpu crypto-neon-fp-armv8
1288; GENERIC-ARMV8_1-A:  .eabi_attribute 12, 4
1289; GENERIC-ARMV8_1-A-NOT:   .eabi_attribute 19
1290;; We default to IEEE 754 compliance
1291; GENERIC-ARMV8_1-A:  .eabi_attribute 20, 1
1292; GENERIC-ARMV8_1-A:  .eabi_attribute 21, 1
1293; GENERIC-ARMV8_1-A-NOT:  .eabi_attribute 22
1294; GENERIC-ARMV8_1-A:  .eabi_attribute 23, 3
1295; GENERIC-ARMV8_1-A:  .eabi_attribute 24, 1
1296; GENERIC-ARMV8_1-A:  .eabi_attribute 25, 1
1297; GENERIC-ARMV8_1-A-NOT:  .eabi_attribute 27
1298; GENERIC-ARMV8_1-A-NOT:  .eabi_attribute 28
1299; GENERIC-ARMV8_1-A:  .eabi_attribute 36, 1
1300; GENERIC-ARMV8_1-A:  .eabi_attribute 38, 1
1301; GENERIC-ARMV8_1-A:  .eabi_attribute 42, 1
1302; GENERIC-ARMV8_1-A-NOT:  .eabi_attribute 44
1303; GENERIC-ARMV8_1-A:  .eabi_attribute 68, 3
1304
1305; GENERIC-ARMV8_1-A-FAST-NOT:   .eabi_attribute 19
1306;; GENERIC-ARMV8_1-A has the ARMv8 FP unit, which always flushes preserving sign.
1307; GENERIC-ARMV8_1-A-FAST:  .eabi_attribute 20, 2
1308; GENERIC-ARMV8_1-A-FAST-NOT:  .eabi_attribute 21
1309; GENERIC-ARMV8_1-A-FAST-NOT:  .eabi_attribute 22
1310; GENERIC-ARMV8_1-A-FAST:  .eabi_attribute 23, 1
1311
1312; RELOC-PIC:  .eabi_attribute 15, 1
1313; RELOC-PIC:  .eabi_attribute 16, 1
1314; RELOC-PIC:  .eabi_attribute 17, 2
1315; RELOC-OTHER:  .eabi_attribute 17, 1
1316
1317; PCS-R9-USE:  .eabi_attribute 14, 0
1318; PCS-R9-RESERVE:  .eabi_attribute 14, 3
1319
1320define i32 @f(i64 %z) {
1321    ret i32 0
1322}
Note: See TracBrowser for help on using the repository browser.