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