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