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