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