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