1 // Test that different values of -mfpu pick correct ARM FPU target-feature(s). 2 3 // RUN: %clang -target arm-linux-eabi %s -### -o %t.o 2>&1 \ 4 // RUN: | FileCheck --check-prefix=CHECK-DEFAULT %s 5 // CHECK-DEFAULT-NOT: "-target-feature" "+soft-float" 6 // CHECK-DEFAULT-DAG: "-target-feature" "+soft-float-abi" 7 // CHECK-DEFAULT-NOT: "-target-feature" "+vfp2" 8 // CHECK-DEFAULT-NOT: "-target-feature" "+vfp3" 9 // CHECK-DEFAULT-NOT: "-target-feature" "+neon" 10 11 // RUN: not %clang --target=arm-linux-eabi -mfpu=fpa %s -### -o %t.o 2>&1 \ 12 // RUN: | FileCheck --check-prefix=CHECK-FPA %s 13 // RUN: not %clang --target=arm-linux-eabi -mfpu=fpe2 %s -### -o %t.o 2>&1 \ 14 // RUN: | FileCheck --check-prefix=CHECK-FPA %s 15 // RUN: not %clang --target=arm-linux-eabi -mfpu=fpe3 %s -### -o %t.o 2>&1 \ 16 // RUN: | FileCheck --check-prefix=CHECK-FPA %s 17 // RUN: not %clang --target=arm-linux-eabi -mfpu=maverick %s -### -o %t.o 2>&1 \ 18 // RUN: | FileCheck --check-prefix=CHECK-FPA %s 19 // CHECK-FPA: error: {{.*}} does not support '-mfpu={{fpa|fpe|fpe2|fpe3|maverick}}' 20 21 // RUN: %clang -target arm-linux-eabi -mfpu=vfp %s -### -o %t.o 2>&1 \ 22 // RUN: | FileCheck --check-prefix=CHECK-VFP %s 23 // RUN: %clang -target arm-linux-eabi -mfpu=vfp %s -mfloat-abi=soft -### -o %t.o 2>&1 \ 24 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-2 %s 25 // CHECK-VFP-NOT: "-target-feature" "+soft-float" 26 // CHECK-VFP-DAG: "-target-feature" "+soft-float-abi" 27 // CHECK-VFP-DAG: "-target-feature" "+vfp2" 28 // CHECK-VFP-DAG: "-target-feature" "-vfp3d16sp" 29 // CHECK-VFP-DAG: "-target-feature" "-vfp4d16sp" 30 // CHECK-VFP-DAG: "-target-feature" "-fp-armv8d16sp" 31 // CHECK-VFP-DAG: "-target-feature" "-neon" 32 // CHECK-SOFT-ABI-FP-2-DAG: "-target-feature" "+soft-float-abi" 33 // CHECK-SOFT-ABI-FP-2-DAG: "-target-feature" "-vfp3d16sp" 34 // CHECK-SOFT-ABI-FP-2-DAG: "-target-feature" "-vfp4d16sp" 35 // CHECK-SOFT-ABI-FP-2-DAG: "-target-feature" "-fp-armv8d16sp" 36 // CHECK-SOFT-ABI-FP-2-DAG: "-target-feature" "-neon" 37 // CHECK-SOFT-ABI-FP-2-DAG: "-target-feature" "-sha2" 38 // CHECK-SOFT-ABI-FP-2-DAG: "-target-feature" "-aes" 39 // CHECK-SOFT-ABI-FP-2-DAG: "-target-feature" "-vfp2sp" 40 41 // RUN: %clang -target arm-linux-eabi -mfpu=vfp3 %s -### -o %t.o 2>&1 \ 42 // RUN: | FileCheck --check-prefix=CHECK-VFP3 %s 43 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3 %s -### -o %t.o 2>&1 \ 44 // RUN: | FileCheck --check-prefix=CHECK-VFP3 %s 45 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 46 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-3 %s 47 // CHECK-VFP3-NOT: "-target-feature" "+soft-float" 48 // CHECK-VFP3-DAG: "-target-feature" "+soft-float-abi" 49 // CHECK-VFP3-DAG: "-target-feature" "+vfp3" 50 // CHECK-VFP3-DAG: "-target-feature" "-vfp4d16sp" 51 // CHECK-VFP3-DAG: "-target-feature" "-fp-armv8d16sp" 52 // CHECK-VFP3-DAG: "-target-feature" "-neon" 53 // CHECK-SOFT-ABI-FP-3-DAG: "-target-feature" "+soft-float-abi" 54 // CHECK-SOFT-ABI-FP-3-DAG: "-target-feature" "-vfp2sp" 55 // CHECK-SOFT-ABI-FP-3-DAG: "-target-feature" "-vfp4d16sp" 56 // CHECK-SOFT-ABI-FP-3-DAG: "-target-feature" "-fp-armv8d16sp" 57 // CHECK-SOFT-ABI-FP-3-DAG: "-target-feature" "-neon" 58 // CHECK-SOFT-ABI-FP-3-DAG: "-target-feature" "-sha2" 59 // CHECK-SOFT-ABI-FP-3-DAG: "-target-feature" "-aes" 60 // CHECK-SOFT-ABI-FP-3-DAG: "-target-feature" "-vfp3d16sp" 61 62 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3-fp16 %s -### -o %t.o 2>&1 \ 63 // RUN: | FileCheck --check-prefix=CHECK-VFP3-FP16 %s 64 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3-fp16 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 65 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-3 %s 66 // CHECK-VFP3-FP16-NOT: "-target-feature" "+soft-float" 67 // CHECK-VFP3-FP16-DAG: "-target-feature" "+soft-float-abi" 68 // CHECK-VFP3-FP16-DAG: "-target-feature" "+vfp3" 69 // CHECK-VFP3-FP16-DAG: "-target-feature" "+fp16" 70 // CHECK-VFP3-FP16-DAG: "-target-feature" "-vfp4d16sp" 71 // CHECK-VFP3-FP16-DAG: "-target-feature" "-fp-armv8d16sp" 72 // CHECK-VFP3-FP16-DAG: "-target-feature" "+fp64" 73 // CHECK-VFP3-FP16-DAG: "-target-feature" "+d32" 74 // CHECK-VFP3-FP16-DAG: "-target-feature" "-neon" 75 // CHECK-VFP3-FP16-DAG: "-target-feature" "-sha2" 76 // CHECK-VFP3-FP16-DAG: "-target-feature" "-aes" 77 78 // RUN: %clang -target arm-linux-eabi -mfpu=vfp3-d16 %s -### -o %t.o 2>&1 \ 79 // RUN: | FileCheck --check-prefix=CHECK-VFP3-D16 %s 80 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3-d16 %s -### -o %t.o 2>&1 \ 81 // RUN: | FileCheck --check-prefix=CHECK-VFP3-D16 %s 82 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3-d16 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 83 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-3 %s 84 // CHECK-VFP3-D16-NOT: "-target-feature" "+soft-float" 85 // CHECK-VFP3-D16-DAG: "-target-feature" "+soft-float-abi" 86 // CHECK-VFP3-D16-DAG: "-target-feature" "+vfp3d16" 87 // CHECK-VFP3-D16-DAG: "-target-feature" "-vfp4d16sp" 88 // CHECK-VFP3-D16-DAG: "-target-feature" "-fp-armv8d16sp" 89 // CHECK-VFP3-D16-DAG: "-target-feature" "+fp64" 90 // CHECK-VFP3-D16-DAG: "-target-feature" "-d32" 91 // CHECK-VFP3-D16-DAG: "-target-feature" "-neon" 92 93 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3-d16-fp16 %s -### -o %t.o 2>&1 \ 94 // RUN: | FileCheck --check-prefix=CHECK-VFP3-D16-FP16 %s 95 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3-d16-fp16 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 96 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-3 %s 97 // CHECK-VFP3-D16-FP16-NOT: "-target-feature" "+soft-float" 98 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "+soft-float-abi" 99 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "+vfp3d16" 100 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "+fp16" 101 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "-vfp4d16sp" 102 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "-fp-armv8d16sp" 103 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "+fp64" 104 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "-d32" 105 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "-neon" 106 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "-sha2" 107 // CHECK-VFP3-D16-FP16-DAG: "-target-feature" "-aes" 108 109 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3xd %s -### -o %t.o 2>&1 \ 110 // RUN: | FileCheck --check-prefix=CHECK-VFP3XD %s 111 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3xd -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 112 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-3 %s 113 // CHECK-VFP3XD-NOT: "-target-feature" "+soft-float" 114 // CHECK-VFP3XD-DAG: "-target-feature" "+soft-float-abi" 115 // CHECK-VFP3XD-DAG: "-target-feature" "-fp64" 116 // CHECK-VFP3XD-DAG: "-target-feature" "-d32" 117 // CHECK-VFP3XD-DAG: "-target-feature" "+vfp3d16sp" 118 // CHECK-VFP3XD-DAG: "-target-feature" "-fp16" 119 // CHECK-VFP3XD-DAG: "-target-feature" "-vfp4d16sp" 120 // CHECK-VFP3XD-DAG: "-target-feature" "-fp-armv8d16sp" 121 // CHECK-VFP3XD-DAG: "-target-feature" "-neon" 122 // CHECK-VFP3XD-DAG: "-target-feature" "-sha2" 123 // CHECK-VFP3XD-DAG: "-target-feature" "-aes" 124 125 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3xd-fp16 %s -### -o %t.o 2>&1 \ 126 // RUN: | FileCheck --check-prefix=CHECK-VFP3XD-FP16 %s 127 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3xd-fp16 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 128 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-3 %s 129 // CHECK-VFP3XD-FP16-NOT: "-target-feature" "+soft-float" 130 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "+soft-float-abi" 131 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "+vfp3d16sp" 132 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "+fp16" 133 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "-vfp4d16sp" 134 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "-fp-armv8d16sp" 135 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "-fp64" 136 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "-d32" 137 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "-neon" 138 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "-sha2" 139 // CHECK-VFP3XD-FP16-DAG: "-target-feature" "-aes" 140 141 // RUN: %clang -target arm-linux-eabi -mfpu=vfp4 %s -### -o %t.o 2>&1 \ 142 // RUN: | FileCheck --check-prefix=CHECK-VFP4 %s 143 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv4 %s -### -o %t.o 2>&1 \ 144 // RUN: | FileCheck --check-prefix=CHECK-VFP4 %s 145 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv4 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 146 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-4 %s 147 // CHECK-VFP4-NOT: "-target-feature" "+soft-float" 148 // CHECK-VFP4-DAG: "-target-feature" "+soft-float-abi" 149 // CHECK-VFP4-DAG: "-target-feature" "+vfp4" 150 // CHECK-VFP4-DAG: "-target-feature" "-fp-armv8d16sp" 151 // CHECK-VFP4-DAG: "-target-feature" "-neon" 152 // CHECK-SOFT-ABI-FP-4-DAG: "-target-feature" "+soft-float-abi" 153 // CHECK-SOFT-ABI-FP-4-DAG: "-target-feature" "-vfp2sp" 154 // CHECK-SOFT-ABI-FP-4-DAG: "-target-feature" "-vfp3d16sp" 155 // CHECK-SOFT-ABI-FP-4-DAG: "-target-feature" "-fp-armv8d16sp" 156 // CHECK-SOFT-ABI-FP-4-DAG: "-target-feature" "-neon" 157 // CHECK-SOFT-ABI-FP-4-DAG: "-target-feature" "-sha2" 158 // CHECK-SOFT-ABI-FP-4-DAG: "-target-feature" "-aes" 159 // CHECK-SOFT-ABI-FP-4-DAG: "-target-feature" "-vfp4d16sp" 160 161 // RUN: %clang -target arm-linux-eabi -mfpu=vfp4-d16 %s -### -o %t.o 2>&1 \ 162 // RUN: | FileCheck --check-prefix=CHECK-VFP4-D16 %s 163 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv4-d16 %s -### -o %t.o 2>&1 \ 164 // RUN: | FileCheck --check-prefix=CHECK-VFP4-D16 %s 165 // RUN: %clang -target arm-linux-eabi -mfpu=vfpv4-d16 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 166 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-4 %s 167 // CHECK-VFP4-D16-NOT: "-target-feature" "+soft-float" 168 // CHECK-VFP4-D16-DAG: "-target-feature" "+soft-float-abi" 169 // CHECK-VFP4-D16-DAG: "-target-feature" "+vfp4d16" 170 // CHECK-VFP4-D16-DAG: "-target-feature" "-fp-armv8d16sp" 171 // CHECK-VFP4-D16-DAG: "-target-feature" "+fp64" 172 // CHECK-VFP4-D16-DAG: "-target-feature" "-d32" 173 // CHECK-VFP4-D16-DAG: "-target-feature" "-neon" 174 175 // RUN: %clang -target arm-linux-eabi -mfpu=fp4-sp-d16 %s -### -o %t.o 2>&1 \ 176 // RUN: | FileCheck --check-prefix=CHECK-FP4-SP-D16 %s 177 // RUN: %clang -target arm-linux-eabi -mfpu=fpv4-sp-d16 %s -### -o %t.o 2>&1 \ 178 // RUN: | FileCheck --check-prefix=CHECK-FP4-SP-D16 %s 179 // RUN: %clang -target arm-linux-eabi -mfpu=fpv4-sp-d16 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 180 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-4 %s 181 // CHECK-FP4-SP-D16-NOT: "-target-feature" "+soft-float" 182 // CHECK-FP4-SP-D16-DAG: "-target-feature" "+soft-float-abi" 183 // CHECK-FP4-SP-D16-DAG: "-target-feature" "+vfp4d16sp" 184 // CHECK-FP4-SP-D16-DAG: "-target-feature" "-fp-armv8d16sp" 185 // CHECK-FP4-SP-D16-DAG: "-target-feature" "-fp64" 186 // CHECK-FP4-SP-D16-DAG: "-target-feature" "-d32" 187 // CHECK-FP4-SP-D16-DAG: "-target-feature" "-neon" 188 189 // RUN: %clang -target arm-linux-eabi -mfpu=fp5-sp-d16 %s -### -o %t.o 2>&1 \ 190 // RUN: | FileCheck --check-prefix=CHECK-FP5-SP-D16 %s 191 // RUN: %clang -target arm-linux-eabi -mfpu=fpv5-sp-d16 %s -### -o %t.o 2>&1 \ 192 // RUN: | FileCheck --check-prefix=CHECK-FP5-SP-D16 %s 193 // RUN: not %clang --target=arm-linux-eabi -mfpu=fp-armv8-sp-d16 -mfloat-abi=soft %s -### -o %t.o \ 194 // RUN: 2>&1 | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 195 // CHECK-FP5-SP-D16-NOT: "-target-feature" "+soft-float" 196 // CHECK-FP5-SP-D16-DAG: "-target-feature" "+soft-float-abi" 197 // CHECK-FP5-SP-D16-DAG: "-target-feature" "+fp-armv8d16sp" 198 // CHECK-FP5-SP-D16-DAG: "-target-feature" "-neon" 199 // CHECK-FP5-SP-D16-DAG: "-target-feature" "-fp64" 200 // CHECK-FP5-SP-D16-DAG: "-target-feature" "-d32" 201 // CHECK-FP5-SP-D16-DAG: "-target-feature" "-sha2" 202 // CHECK-FP5-SP-D16-DAG: "-target-feature" "-aes" 203 204 // RUN: %clang -target arm-linux-eabi -mfpu=fp5-dp-d16 %s -### -o %t.o 2>&1 \ 205 // RUN: | FileCheck --check-prefix=CHECK-FP5-DP-D16 %s 206 // RUN: %clang -target arm-linux-eabi -mfpu=fpv5-dp-d16 %s -### -o %t.o 2>&1 \ 207 // RUN: | FileCheck --check-prefix=CHECK-FP5-DP-D16 %s 208 // RUN: %clang -target arm-linux-eabi -mfpu=fpv5-dp-d16 %s -mfloat-abi=soft -### -o %t.o 2>&1 \ 209 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-5 %s 210 // CHECK-FP5-DP-D16-NOT: "-target-feature" "+soft-float" 211 // CHECK-FP5-DP-D16-DAG: "-target-feature" "+soft-float-abi" 212 // CHECK-FP5-DP-D16-DAG: "-target-feature" "+fp-armv8d16" 213 // CHECK-FP5-DP-D16-DAG: "-target-feature" "+fp64" 214 // CHECK-FP5-DP-D16-DAG: "-target-feature" "-d32" 215 // CHECK-FP5-DP-D16-DAG: "-target-feature" "-neon" 216 // CHECK-FP5-DP-D16-DAG: "-target-feature" "-sha2" 217 // CHECK-FP5-DP-D16-DAG: "-target-feature" "-aes" 218 // CHECK-SOFT-ABI-FP-5-DAG: "-target-feature" "+soft-float" 219 // CHECK-SOFT-ABI-FP-5-DAG: "-target-feature" "+soft-float-abi" 220 // CHECK-SOFT-ABI-FP-5-DAG: "-target-feature" "-vfp2sp" 221 // CHECK-SOFT-ABI-FP-5-DAG: "-target-feature" "-vfp3d16sp" 222 // CHECK-SOFT-ABI-FP-5-DAG: "-target-feature" "-vfp4d16sp" 223 // CHECK-SOFT-ABI-FP-5-DAG: "-target-feature" "-neon" 224 // CHECK-SOFT-ABI-FP-5-DAG: "-target-feature" "-sha2" 225 // CHECK-SOFT-ABI-FP-5-DAG: "-target-feature" "-aes" 226 // CHECK-SOFT-ABI-FP-5-DAG: "-target-feature" "-fp-armv8d16sp" 227 228 // RUN: %clang -target arm-linux-eabi -mfpu=neon %s -### -o %t.o 2>&1 \ 229 // RUN: | FileCheck --check-prefix=CHECK-NEON %s 230 // RUN: %clang -target arm-linux-eabi -mfpu=neon -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 231 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-6 %s 232 // CHECK-NEON-NOT: "-target-feature" "+soft-float" 233 // CHECK-NEON-DAG: "-target-feature" "+neon" 234 // CHECK-SOFT-ABI-FP-6-DAG: "-target-feature" "+soft-float-abi" 235 // CHECK-SOFT-ABI-FP-6-DAG: "-target-feature" "-vfp2sp" 236 // CHECK-SOFT-ABI-FP-6-DAG: "-target-feature" "-vfp4d16sp" 237 // CHECK-SOFT-ABI-FP-6-DAG: "-target-feature" "-fp-armv8d16sp" 238 // CHECK-SOFT-ABI-FP-6-DAG: "-target-feature" "-sha2" 239 // CHECK-SOFT-ABI-FP-6-DAG: "-target-feature" "-aes" 240 // CHECK-SOFT-ABI-FP-6-DAG: "-target-feature" "-vfp3d16sp" 241 // CHECK-SOFT-ABI-FP-6-DAG: "-target-feature" "-neon" 242 243 // RUN: %clang -target arm-linux-eabi -mfpu=neon-fp16 %s -### -o %t.o 2>&1 \ 244 // RUN: | FileCheck --check-prefix=CHECK-NEON-FP16 %s 245 // RUN: %clang -target arm-linux-eabi -mfpu=neon-fp16 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 246 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-6 %s 247 // CHECK-NEON-FP16-NOT: "-target-feature" "+soft-float" 248 // CHECK-NEON-FP16-DAG: "-target-feature" "+soft-float-abi" 249 // CHECK-NEON-FP16-DAG: "-target-feature" "+vfp3" 250 // CHECK-NEON-FP16-DAG: "-target-feature" "+fp16" 251 // CHECK-NEON-FP16-DAG: "-target-feature" "-vfp4d16sp" 252 // CHECK-NEON-FP16-DAG: "-target-feature" "-fp-armv8d16sp" 253 // CHECK-NEON-FP16-DAG: "-target-feature" "+fp64" 254 // CHECK-NEON-FP16-DAG: "-target-feature" "+d32" 255 // CHECK-NEON-FP16-DAG: "-target-feature" "+neon" 256 // CHECK-NEON-FP16-DAG: "-target-feature" "-sha2" 257 // CHECK-NEON-FP16-DAG: "-target-feature" "-aes" 258 259 // RUN: %clang -target arm-linux-eabi -mfpu=neon-vfpv3 %s -### -o %t.o 2>&1 \ 260 // RUN: | FileCheck --check-prefix=CHECK-NEON-VFPV3 %s 261 // RUN: %clang -target arm-linux-eabi -mfpu=neon-vfpv3 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 262 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-6 %s 263 // CHECK-NEON-VFPV3-NOT: "-target-feature" "+soft-float" 264 // CHECK-NEON-VFPV3-DAG: "-target-feature" "+soft-float-abi" 265 // CHECK-NEON-VFPV3-DAG: "-target-feature" "+vfp3" 266 // CHECK-NEON-VFPV3-DAG: "-target-feature" "+neon" 267 268 // RUN: %clang -target arm-linux-eabi -mfpu=neon-vfpv4 %s -### -o %t.o 2>&1 \ 269 // RUN: | FileCheck --check-prefix=CHECK-NEON-VFPV4 %s 270 // RUN: %clang -target arm-linux-eabi -mfpu=neon-vfpv4 -mfloat-abi=soft %s -### -o %t.o 2>&1 \ 271 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-7 %s 272 // CHECK-NEON-VFPV4-NOT: "-target-feature" "+soft-float" 273 // CHECK-NEON-VFPV4-DAG: "-target-feature" "+soft-float-abi" 274 // CHECK-NEON-VFPV4-DAG: "-target-feature" "+vfp4" 275 // CHECK-NEON-VFPV4-DAG: "-target-feature" "+neon" 276 // CHECK-SOFT-ABI-FP-7-DAG: "-target-feature" "+soft-float-abi" 277 // CHECK-SOFT-ABI-FP-7-DAG: "-target-feature" "-vfp2sp" 278 // CHECK-SOFT-ABI-FP-7-DAG: "-target-feature" "-vfp3d16sp" 279 // CHECK-SOFT-ABI-FP-7-DAG: "-target-feature" "-fp-armv8d16sp" 280 // CHECK-SOFT-ABI-FP-7-DAG: "-target-feature" "-sha2" 281 // CHECK-SOFT-ABI-FP-7-DAG: "-target-feature" "-aes" 282 // CHECK-SOFT-ABI-FP-7-DAG: "-target-feature" "-vfp4d16sp" 283 // CHECK-SOFT-ABI-FP-7-DAG: "-target-feature" "-neon" 284 285 // RUN: %clang -target arm-linux-eabi -msoft-float %s -### -o %t.o 2>&1 \ 286 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 287 // RUN: %clang -target armv8 %s -### 2>&1 \ 288 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 289 // RUN: %clang -target armv8a -mfpu=neon %s -### -c 2>&1 \ 290 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP-8 %s 291 // CHECK-SOFT-ABI-FP-8-DAG: "-target-feature" "+soft-float-abi" 292 // CHECK-SOFT-ABI-FP-8-DAG: "-target-feature" "-vfp2sp" 293 // CHECK-SOFT-ABI-FP-8-DAG: "-target-feature" "-vfp4d16sp" 294 // CHECK-SOFT-ABI-FP-8-DAG: "-target-feature" "-fp-armv8d16sp" 295 // CHECK-SOFT-ABI-FP-8-DAG: "-target-feature" "-sha2" 296 // CHECK-SOFT-ABI-FP-8-DAG: "-target-feature" "-aes" 297 // CHECK-SOFT-ABI-FP-8-DAG: "-target-feature" "-vfp3d16sp" 298 // CHECK-SOFT-ABI-FP-8-DAG: "-target-feature" "-neon" 299 300 // RUN: %clang -target armv8 -mfpu=fp-armv8 %s -### 2>&1 \ 301 // RUN: | FileCheck --check-prefix=CHECK-ARMV8-SOFT-FLOAT %s 302 // CHECK-ARMV8-SOFT-FLOAT-DAG: "-target-feature" "+soft-float" 303 // CHECK-ARMV8-SOFT-FLOAT-DAG: "-target-feature" "+soft-float-abi" 304 // NOT-CHECK-ARMV8-SOFT-FLOAT: "-target-feature" "+fp-armv8" 305 // CHECK-ARMV9-SOFT-FLOAT-DAG: "-target-feature" "-neon" 306 // CHECK-ARMV8-SOFT-FLOAT-DAG: "-target-feature" "-sha2" 307 // CHECK-ARMV8-SOFT-FLOAT-DAG: "-target-feature" "-aes" 308 309 // RUN: %clang -target armv8-linux-gnueabihf -mfpu=fp-armv8 %s -### 2>&1 \ 310 // RUN: | FileCheck --check-prefix=CHECK-FP-ARMV8 %s 311 // CHECK-FP-ARMV8-NOT: "-target-feature" "+soft-float" 312 // CHECK-FP-ARMV8-NOT: "-target-feature" "+soft-float-abi" 313 // CHECK-FP-ARMV8-DAG: "-target-feature" "+fp-armv8" 314 // CHECK-FP-ARMV8-DAG: "-target-feature" "-neon" 315 // CHECK-FP-ARMV8-DAG: "-target-feature" "-sha2" 316 // CHECK-FP-ARMV8-DAG: "-target-feature" "-aes" 317 318 // RUN: %clang -target armv8-linux-gnueabihf -mfpu=neon-fp-armv8 %s -### 2>&1 \ 319 // RUN: | FileCheck --check-prefix=CHECK-NEON-FP-ARMV8 %s 320 // CHECK-NEON-FP-ARMV8-NOT: "-target-feature" "+soft-float" 321 // CHECK-NEON-FP-ARMV8-NOT: "-target-feature" "+soft-float-abi" 322 // CHECK-NEON-FP-ARMV8-DAG: "-target-feature" "+fp-armv8" 323 // CHECK-NEON-FP-ARMV8-DAG: "-target-feature" "+neon" 324 // CHECK-NEON-FP-ARMV8-DAG: "-target-feature" "-sha2" 325 // CHECK-NEON-FP-ARMV8-DAG: "-target-feature" "-aes" 326 327 // RUN: %clang -target armv8-linux-gnueabihf -mfpu=crypto-neon-fp-armv8 %s -### 2>&1 \ 328 // RUN: | FileCheck --check-prefix=CHECK-CRYPTO-NEON-FP-ARMV8 %s 329 // CHECK-CRYPTO-NEON-FP-ARMV8-NOT: "-target-feature" "+soft-float" 330 // CHECK-CRYPTO-NEON-FP-ARMV8-NOT: "-target-feature" "+soft-float-abi" 331 // CHECK-CRYPTO-NEON-FP-ARMV8-DAG: "-target-feature" "+fp-armv8" 332 // CHECK-CRYPTO-NEON-FP-ARMV8-DAG: "-target-feature" "+sha2" 333 // CHECK-CRYPTO-NEON-FP-ARMV8-DAG: "-target-feature" "+aes" 334 335 // RUN: %clang -target armv8-linux-gnueabi -mfpu=none %s -### 2>&1 \ 336 // RUN: | FileCheck --check-prefix=CHECK-NO-FP %s 337 // CHECK-NO-FP-NOT: "-target-feature" "+soft-float" 338 // CHECK-NO-FP-DAG: "-target-feature" "+soft-float-abi" 339 // CHECK-NO-FP-DAG: "-target-feature" "-fpregs" 340 // CHECK-NO-FP-DAG: "-target-feature" "-vfp2sp" 341 // CHECK-NO-FP-DAG: "-target-feature" "-vfp3d16sp" 342 // CHECK-NO-FP-DAG: "-target-feature" "-vfp4d16sp" 343 // CHECK-NO-FP-DAG: "-target-feature" "-fp-armv8d16sp" 344 // CHECK-NO-FP-DAG: "-target-feature" "-fp64" 345 // CHECK-NO-FP-DAG: "-target-feature" "-d32" 346 // CHECK-NO-FP-DAG: "-target-feature" "-neon" 347 // CHECK-NO-FP-DAG: "-target-feature" "-sha2" 348 // CHECK-NO-FP-DAG: "-target-feature" "-aes" 349 350 // RUN: %clang -target arm-linux-gnueabihf %s -### 2>&1 \ 351 // RUN: | FileCheck --check-prefix=CHECK-HF %s 352 // RUN: %clang -target arm-linux-musleabihf %s -### 2>&1 \ 353 // RUN: | FileCheck --check-prefix=CHECK-HF %s 354 // CHECK-HF-NOT: "-target-feature" "+soft-float" 355 // CHECK-HF-NOT: "-target-feature" "+soft-float-abi" 356 // CHECK-HF-DAG: "-target-cpu" "arm1176jzf-s" 357 358 // RUN: %clang -target armv7-apple-darwin -x assembler %s -### -c 2>&1 \ 359 // RUN: | FileCheck --check-prefix=ASM-NEON %s 360 // RUN: %clang -target armv7-windows -x assembler %s -### -c 2>&1 \ 361 // RUN: | FileCheck --check-prefix=ASM-NEON %s 362 // ASM-NEON: "-target-feature" "+neon" 363 364 // RUN: %clang -target armv8-linux-gnueabi -mfloat-abi=soft -mfpu=none %s -### -c 2>&1 \ 365 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 366 // RUN: %clang -target armv7-linux-gnueabi -mfloat-abi=soft -mfpu=none %s -### -c 2>&1 \ 367 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 368 // RUN: %clang -target armv6-linux-gnueabi -mfloat-abi=soft -mfpu=none %s -### -c 2>&1 \ 369 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 370 // RUN: %clang -target armv5-linux-gnueabi -mfloat-abi=soft -mfpu=none %s -### -c 2>&1 \ 371 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 372 // RUN: %clang -target armv4-linux-gnueabi -mfloat-abi=soft -mfpu=none %s -### -c 2>&1 \ 373 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 374 // RUN: %clang -target armv8-linux-gnueabi -msoft-float -mfpu=none %s -### -c 2>&1 \ 375 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 376 // RUN: %clang -target armv8-linux-gnueabi -mfloat-abi=soft %s -### -c 2>&1 \ 377 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 378 // RUN: %clang -target armv8-linux-gnueabi -msoft-float %s -### -c 2>&1 \ 379 // RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s 380 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "+soft-float" 381 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "+soft-float-abi" 382 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "-vfp2sp" 383 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "-vfp3d16sp" 384 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "-vfp4d16sp" 385 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "-fp-armv8d16sp" 386 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "-neon" 387 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "-sha2" 388 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "-aes" 389 // CHECK-SOFT-ABI-FP-DAG: "-target-feature" "-fpregs" 390 391 // RUN: %clang -target armv7-linux-androideabi21 %s -### -c 2>&1 \ 392 // RUN: | FileCheck --check-prefix=CHECK-ARM7-ANDROID-FP-DEFAULT %s 393 // CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+soft-float" 394 // CHECK-ARM7-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+soft-float-abi" 395 // CHECK-ARM7-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+vfp3" 396 // CHECK-ARM7-ANDROID-FP-DEFAULT-DAG: "-target-feature" "-vfp4" 397 // CHECK-ARM7-ANDROID-FP-DEFAULT-DAG: "-target-feature" "-fp-armv8" 398 // CHECK-ARM7-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+neon" 399 // CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+sha2" 400 // CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+aes" 401 402 // RUN: %clang -target armv8-linux-androideabi21 %s -### -c 2>&1 \ 403 // RUN: | FileCheck --check-prefix=CHECK-ARM8-ANDROID-FP-DEFAULT %s 404 // CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+soft-float-abi" 405 // CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+vfp3" 406 // CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+vfp4" 407 // CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+fp-armv8" 408 // CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+aes" 409 // CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+sha2" 410 // CHECK-ARM8-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+neon" 411 412 // RUN: %clang -target armv8-linux-android %s -### -c 2>&1 \ 413 // RUN: | FileCheck --check-prefix=CHECK-ARM8-ANDROID-DEFAULT %s 414 // CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+vfp3" 415 // CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+vfp4" 416 // CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+fp-armv8" 417 // CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+aes" 418 // CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+sha2" 419 // CHECK-ARM8-ANDROID-DEFAULT-NOT: "-target-feature" "+neon" 420 421 // RUN: %clang -target armv7-linux-androideabi21 %s -mfpu=vfp3-d16 -### -c 2>&1 \ 422 // RUN: | FileCheck --check-prefix=CHECK-ARM7-ANDROID-FP-D16 %s 423 // CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+soft-float" 424 // CHECK-ARM7-ANDROID-FP-D16-DAG: "-target-feature" "+soft-float-abi" 425 // CHECK-ARM7-ANDROID-FP-D16-DAG: "-target-feature" "-d32" 426 // CHECK-ARM7-ANDROID-FP-D16-DAG: "-target-feature" "+vfp3d16" 427 // CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+vfp4" 428 // CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+fp-armv8" 429 // CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+neon" 430 // CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+sha2" 431 // CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+aes" 432 433 // RUN: %clang -target arm-none-none-eabi %s -march=armv8.1-m.main+mve.fp+fp.dp -mfloat-abi=soft -### -c 2>&1 \ 434 // RUN: | FileCheck --check-prefix=CHECK-SOFTFLOATABI-INHIBITS-MVE %s 435 // CHECK-SOFTFLOATABI-INHIBITS-MVE-NOT: "-target-feature" "+mve" 436 // CHECK-SOFTFLOATABI-INHIBITS-MVE-DAG: "-target-feature" "-mve" 437 // CHECK-SOFTFLOATABI-INHIBITS-MVE-DAG: "-target-feature" "-mve.fp" 438 439 // RUN: %clang -target arm-none-none-eabi %s -march=armv8.1-m.main+mve.fp -mfpu=none -### -c 2>&1 \ 440 // RUN: | FileCheck --check-prefix=CHECK-MVEFP-FPUNONE %s 441 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-vfp2sp" 442 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-vfp3d16sp" 443 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-vfp4d16sp" 444 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-fp-armv8d16sp" 445 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-fp64" 446 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-d32" 447 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-neon" 448 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-sha2" 449 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-aes" 450 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "+mve" 451 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "+dsp" 452 // CHECK-MVEFP-FPUNONE-DAG: "-target-feature" "-mve.fp" 453 // CHECK-MVEFP-FPUNONE-NOT: "-target-feature" "-fpregs" 454 455 // RUN: %clang -target arm-none-none-eabi %s -march=armv8.1-m.main+mve.fp+nomve -mfpu=none -### -c 2>&1 \ 456 // RUN: | FileCheck --check-prefix=CHECK-MVEFP-NOMVE-FPUNONE %s 457 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-vfp2sp" 458 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-vfp3d16sp" 459 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-vfp4d16sp" 460 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-fp-armv8d16sp" 461 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-fp64" 462 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-d32" 463 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-neon" 464 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-sha2" 465 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-aes" 466 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "+dsp" 467 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-mve" 468 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-mve.fp" 469 // CHECK-MVEFP-NOMVE-FPUNONE-DAG: "-target-feature" "-fpregs" 470 471 // RUN: %clang -target arm-none-none-eabi %s -march=armv8.1-m.main+mve -mfpu=none -### -c 2>&1 \ 472 // RUN: | FileCheck --check-prefix=CHECK-MVEI-FPUNONE %s 473 // CHECK-MVEI-FPUNONE-DAG: "-target-feature" "-mve.fp" 474 // CHECK-MVEI-FPUNONE-DAG: "-target-feature" "+mve" 475 // CHECK-MVEI-FPUNONE-DAG: "-target-feature" "+dsp" 476 // CHECK-MVEI-FPUNONE-NOT: "-target-feature" "-fpregs" 477