1 ; RUN: llc < %s -asm-verbose=false -mtriple=aarch64-none-eabi | FileCheck %s 2 3 define <8 x half> @add_h(<8 x half> %a, <8 x half> %b) { 4 entry: 5 ; CHECK-LABEL: add_h: 6 ; CHECK: fcvt 7 ; CHECK: fcvt 8 ; CHECK-DAG: fadd 9 ; CHECK-DAG: fcvt 10 ; CHECK-DAG: fcvt 11 ; CHECK-DAG: fadd 12 ; CHECK-DAG: fcvt 13 ; CHECK-DAG: fcvt 14 ; CHECK-DAG: fadd 15 ; CHECK-DAG: fcvt 16 ; CHECK-DAG: fcvt 17 ; CHECK-DAG: fadd 18 ; CHECK-DAG: fcvt 19 ; CHECK-DAG: fcvt 20 ; CHECK-DAG: fadd 21 ; CHECK-DAG: fcvt 22 ; CHECK-DAG: fcvt 23 ; CHECK-DAG: fadd 24 ; CHECK-DAG: fcvt 25 ; CHECK-DAG: fcvt 26 ; CHECK-DAG: fadd 27 ; CHECK-DAG: fcvt 28 ; CHECK-DAG: fcvt 29 ; CHECK-DAG: fadd 30 ; CHECK-DAG: fcvt 31 ; CHECK-DAG: fcvt 32 ; CHECK-DAG: fcvt 33 ; CHECK-DAG: fcvt 34 ; CHECK-DAG: fcvt 35 ; CHECK-DAG: fcvt 36 ; CHECK-DAG: fcvt 37 ; CHECK: fcvt 38 %0 = fadd <8 x half> %a, %b 39 ret <8 x half> %0 40 } 41 42 43 define <8 x half> @sub_h(<8 x half> %a, <8 x half> %b) { 44 entry: 45 ; CHECK-LABEL: sub_h: 46 ; CHECK: fcvt 47 ; CHECK: fcvt 48 ; CHECK-DAG: fsub 49 ; CHECK-DAG: fcvt 50 ; CHECK-DAG: fcvt 51 ; CHECK-DAG: fsub 52 ; CHECK-DAG: fcvt 53 ; CHECK-DAG: fcvt 54 ; CHECK-DAG: fsub 55 ; CHECK-DAG: fcvt 56 ; CHECK-DAG: fcvt 57 ; CHECK-DAG: fsub 58 ; CHECK-DAG: fcvt 59 ; CHECK-DAG: fcvt 60 ; CHECK-DAG: fsub 61 ; CHECK-DAG: fcvt 62 ; CHECK-DAG: fcvt 63 ; CHECK-DAG: fsub 64 ; CHECK-DAG: fcvt 65 ; CHECK-DAG: fcvt 66 ; CHECK-DAG: fsub 67 ; CHECK-DAG: fcvt 68 ; CHECK-DAG: fcvt 69 ; CHECK-DAG: fsub 70 ; CHECK-DAG: fcvt 71 ; CHECK-DAG: fcvt 72 ; CHECK-DAG: fcvt 73 ; CHECK-DAG: fcvt 74 ; CHECK-DAG: fcvt 75 ; CHECK-DAG: fcvt 76 ; CHECK-DAG: fcvt 77 ; CHECK: fcvt 78 %0 = fsub <8 x half> %a, %b 79 ret <8 x half> %0 80 } 81 82 83 define <8 x half> @mul_h(<8 x half> %a, <8 x half> %b) { 84 entry: 85 ; CHECK-LABEL: mul_h: 86 ; CHECK: fcvt 87 ; CHECK: fcvt 88 ; CHECK-DAG: fmul 89 ; CHECK-DAG: fcvt 90 ; CHECK-DAG: fcvt 91 ; CHECK-DAG: fmul 92 ; CHECK-DAG: fcvt 93 ; CHECK-DAG: fcvt 94 ; CHECK-DAG: fmul 95 ; CHECK-DAG: fcvt 96 ; CHECK-DAG: fcvt 97 ; CHECK-DAG: fmul 98 ; CHECK-DAG: fcvt 99 ; CHECK-DAG: fcvt 100 ; CHECK-DAG: fmul 101 ; CHECK-DAG: fcvt 102 ; CHECK-DAG: fcvt 103 ; CHECK-DAG: fmul 104 ; CHECK-DAG: fcvt 105 ; CHECK-DAG: fcvt 106 ; CHECK-DAG: fmul 107 ; CHECK-DAG: fcvt 108 ; CHECK-DAG: fcvt 109 ; CHECK-DAG: fmul 110 ; CHECK-DAG: fcvt 111 ; CHECK-DAG: fcvt 112 ; CHECK-DAG: fcvt 113 ; CHECK-DAG: fcvt 114 ; CHECK-DAG: fcvt 115 ; CHECK-DAG: fcvt 116 ; CHECK-DAG: fcvt 117 ; CHECK: fcvt 118 %0 = fmul <8 x half> %a, %b 119 ret <8 x half> %0 120 } 121 122 123 define <8 x half> @div_h(<8 x half> %a, <8 x half> %b) { 124 entry: 125 ; CHECK-LABEL: div_h: 126 ; CHECK: fcvt 127 ; CHECK: fcvt 128 ; CHECK-DAG: fdiv 129 ; CHECK-DAG: fcvt 130 ; CHECK-DAG: fcvt 131 ; CHECK-DAG: fdiv 132 ; CHECK-DAG: fcvt 133 ; CHECK-DAG: fcvt 134 ; CHECK-DAG: fdiv 135 ; CHECK-DAG: fcvt 136 ; CHECK-DAG: fcvt 137 ; CHECK-DAG: fdiv 138 ; CHECK-DAG: fcvt 139 ; CHECK-DAG: fcvt 140 ; CHECK-DAG: fdiv 141 ; CHECK-DAG: fcvt 142 ; CHECK-DAG: fcvt 143 ; CHECK-DAG: fdiv 144 ; CHECK-DAG: fcvt 145 ; CHECK-DAG: fcvt 146 ; CHECK-DAG: fdiv 147 ; CHECK-DAG: fcvt 148 ; CHECK-DAG: fcvt 149 ; CHECK-DAG: fdiv 150 ; CHECK-DAG: fcvt 151 ; CHECK-DAG: fcvt 152 ; CHECK-DAG: fcvt 153 ; CHECK-DAG: fcvt 154 ; CHECK-DAG: fcvt 155 ; CHECK-DAG: fcvt 156 ; CHECK-DAG: fcvt 157 ; CHECK: fcvt 158 %0 = fdiv <8 x half> %a, %b 159 ret <8 x half> %0 160 } 161 162 163 define <8 x half> @load_h(<8 x half>* %a) { 164 entry: 165 ; CHECK-LABEL: load_h: 166 ; CHECK: ldr q0, [x0] 167 %0 = load <8 x half>, <8 x half>* %a, align 4 168 ret <8 x half> %0 169 } 170 171 172 define void @store_h(<8 x half>* %a, <8 x half> %b) { 173 entry: 174 ; CHECK-LABEL: store_h: 175 ; CHECK: str q0, [x0] 176 store <8 x half> %b, <8 x half>* %a, align 4 177 ret void 178 } 179 180 define <8 x half> @s_to_h(<8 x float> %a) { 181 ; CHECK-LABEL: s_to_h: 182 ; CHECK-DAG: fcvtn v0.4h, v0.4s 183 ; CHECK-DAG: fcvtn [[REG:v[0-9+]]].4h, v1.4s 184 ; CHECK: ins v0.d[1], [[REG]].d[0] 185 %1 = fptrunc <8 x float> %a to <8 x half> 186 ret <8 x half> %1 187 } 188 189 define <8 x half> @d_to_h(<8 x double> %a) { 190 ; CHECK-LABEL: d_to_h: 191 ; CHECK-DAG: mov d{{[0-9]+}}, v{{[0-9]+}}.d[1] 192 ; CHECK-DAG: mov d{{[0-9]+}}, v{{[0-9]+}}.d[1] 193 ; CHECK-DAG: mov d{{[0-9]+}}, v{{[0-9]+}}.d[1] 194 ; CHECK-DAG: mov d{{[0-9]+}}, v{{[0-9]+}}.d[1] 195 ; CHECK-DAG: fcvt h 196 ; CHECK-DAG: fcvt h 197 ; CHECK-DAG: fcvt h 198 ; CHECK-DAG: fcvt h 199 ; CHECK-DAG: fcvt h 200 ; CHECK-DAG: fcvt h 201 ; CHECK-DAG: fcvt h 202 ; CHECK-DAG: fcvt h 203 ; CHECK-DAG: ins v{{[0-9]+}}.h 204 ; CHECK-DAG: ins v{{[0-9]+}}.h 205 ; CHECK-DAG: ins v{{[0-9]+}}.h 206 ; CHECK-DAG: ins v{{[0-9]+}}.h 207 ; CHECK-DAG: ins v{{[0-9]+}}.h 208 ; CHECK-DAG: ins v{{[0-9]+}}.h 209 ; CHECK-DAG: ins v{{[0-9]+}}.h 210 ; CHECK-DAG: ins v{{[0-9]+}}.h 211 %1 = fptrunc <8 x double> %a to <8 x half> 212 ret <8 x half> %1 213 } 214 215 define <8 x float> @h_to_s(<8 x half> %a) { 216 ; CHECK-LABEL: h_to_s: 217 ; CHECK: fcvtl2 v1.4s, v0.8h 218 ; CHECK: fcvtl v0.4s, v0.4h 219 %1 = fpext <8 x half> %a to <8 x float> 220 ret <8 x float> %1 221 } 222 223 define <8 x double> @h_to_d(<8 x half> %a) { 224 ; CHECK-LABEL: h_to_d: 225 ; CHECK-DAG: fcvt d 226 ; CHECK-DAG: fcvt d 227 ; CHECK-DAG: fcvt d 228 ; CHECK-DAG: fcvt d 229 ; CHECK-DAG: fcvt d 230 ; CHECK-DAG: fcvt d 231 ; CHECK-DAG: fcvt d 232 ; CHECK-DAG: fcvt d 233 ; CHECK-DAG: ins 234 ; CHECK-DAG: ins 235 ; CHECK-DAG: ins 236 ; CHECK-DAG: ins 237 %1 = fpext <8 x half> %a to <8 x double> 238 ret <8 x double> %1 239 } 240 241 242 define <8 x half> @bitcast_i_to_h(float, <8 x i16> %a) { 243 ; CHECK-LABEL: bitcast_i_to_h: 244 ; CHECK: mov v0.16b, v1.16b 245 %2 = bitcast <8 x i16> %a to <8 x half> 246 ret <8 x half> %2 247 } 248 249 define <8 x i16> @bitcast_h_to_i(float, <8 x half> %a) { 250 ; CHECK-LABEL: bitcast_h_to_i: 251 ; CHECK: mov v0.16b, v1.16b 252 %2 = bitcast <8 x half> %a to <8 x i16> 253 ret <8 x i16> %2 254 } 255 256 257 define <8 x half> @sitofp_i8(<8 x i8> %a) #0 { 258 ; CHECK-LABEL: sitofp_i8: 259 ; CHECK-NEXT: sshll v[[REG1:[0-9]+]].8h, v0.8b, #0 260 ; CHECK-NEXT: sshll2 [[LO:v[0-9]+\.4s]], v[[REG1]].8h, #0 261 ; CHECK-NEXT: sshll [[HI:v[0-9]+\.4s]], v[[REG1]].4h, #0 262 ; CHECK-DAG: scvtf [[HIF:v[0-9]+\.4s]], [[HI]] 263 ; CHECK-DAG: scvtf [[LOF:v[0-9]+\.4s]], [[LO]] 264 ; CHECK-DAG: fcvtn v[[LOREG:[0-9]+]].4h, [[LOF]] 265 ; CHECK-DAG: fcvtn v0.4h, [[HIF]] 266 ; CHECK: ins v0.d[1], v[[LOREG]].d[0] 267 %1 = sitofp <8 x i8> %a to <8 x half> 268 ret <8 x half> %1 269 } 270 271 272 define <8 x half> @sitofp_i16(<8 x i16> %a) #0 { 273 ; CHECK-LABEL: sitofp_i16: 274 ; CHECK-NEXT: sshll2 [[LO:v[0-9]+\.4s]], v0.8h, #0 275 ; CHECK-NEXT: sshll [[HI:v[0-9]+\.4s]], v0.4h, #0 276 ; CHECK-DAG: scvtf [[HIF:v[0-9]+\.4s]], [[HI]] 277 ; CHECK-DAG: scvtf [[LOF:v[0-9]+\.4s]], [[LO]] 278 ; CHECK-DAG: fcvtn v[[LOREG:[0-9]+]].4h, [[LOF]] 279 ; CHECK-DAG: fcvtn v0.4h, [[HIF]] 280 ; CHECK: ins v0.d[1], v[[LOREG]].d[0] 281 %1 = sitofp <8 x i16> %a to <8 x half> 282 ret <8 x half> %1 283 } 284 285 286 define <8 x half> @sitofp_i32(<8 x i32> %a) #0 { 287 ; CHECK-LABEL: sitofp_i32: 288 ; CHECK-DAG: scvtf [[OP1:v[0-9]+\.4s]], v0.4s 289 ; CHECK-DAG: scvtf [[OP2:v[0-9]+\.4s]], v1.4s 290 ; CHECK-DAG: fcvtn v[[REG:[0-9]+]].4h, [[OP2]] 291 ; CHECK-DAG: fcvtn v0.4h, [[OP1]] 292 ; CHECK: ins v0.d[1], v[[REG]].d[0] 293 %1 = sitofp <8 x i32> %a to <8 x half> 294 ret <8 x half> %1 295 } 296 297 298 define <8 x half> @sitofp_i64(<8 x i64> %a) #0 { 299 ; CHECK-LABEL: sitofp_i64: 300 ; CHECK-DAG: scvtf [[OP1:v[0-9]+\.2d]], v0.2d 301 ; CHECK-DAG: scvtf [[OP2:v[0-9]+\.2d]], v1.2d 302 ; CHECK-DAG: fcvtn [[OP3:v[0-9]+]].2s, [[OP1]] 303 ; CHECK-DAG: fcvtn2 [[OP3]].4s, [[OP2]] 304 ; CHECK: fcvtn v0.4h, [[OP3]].4s 305 %1 = sitofp <8 x i64> %a to <8 x half> 306 ret <8 x half> %1 307 } 308 309 define <8 x half> @uitofp_i8(<8 x i8> %a) #0 { 310 ; CHECK-LABEL: uitofp_i8: 311 ; CHECK-NEXT: ushll v[[REG1:[0-9]+]].8h, v0.8b, #0 312 ; CHECK-NEXT: ushll2 [[LO:v[0-9]+\.4s]], v[[REG1]].8h, #0 313 ; CHECK-NEXT: ushll [[HI:v[0-9]+\.4s]], v[[REG1]].4h, #0 314 ; CHECK-DAG: ucvtf [[HIF:v[0-9]+\.4s]], [[HI]] 315 ; CHECK-DAG: ucvtf [[LOF:v[0-9]+\.4s]], [[LO]] 316 ; CHECK-DAG: fcvtn v[[LOREG:[0-9]+]].4h, [[LOF]] 317 ; CHECK-DAG: fcvtn v0.4h, [[HIF]] 318 ; CHECK: ins v0.d[1], v[[LOREG]].d[0] 319 %1 = uitofp <8 x i8> %a to <8 x half> 320 ret <8 x half> %1 321 } 322 323 324 define <8 x half> @uitofp_i16(<8 x i16> %a) #0 { 325 ; CHECK-LABEL: uitofp_i16: 326 ; CHECK-NEXT: ushll2 [[LO:v[0-9]+\.4s]], v0.8h, #0 327 ; CHECK-NEXT: ushll [[HI:v[0-9]+\.4s]], v0.4h, #0 328 ; CHECK-DAG: ucvtf [[HIF:v[0-9]+\.4s]], [[HI]] 329 ; CHECK-DAG: ucvtf [[LOF:v[0-9]+\.4s]], [[LO]] 330 ; CHECK-DAG: fcvtn v[[LOREG:[0-9]+]].4h, [[LOF]] 331 ; CHECK-DAG: fcvtn v0.4h, [[HIF]] 332 ; CHECK: ins v0.d[1], v[[LOREG]].d[0] 333 %1 = uitofp <8 x i16> %a to <8 x half> 334 ret <8 x half> %1 335 } 336 337 338 define <8 x half> @uitofp_i32(<8 x i32> %a) #0 { 339 ; CHECK-LABEL: uitofp_i32: 340 ; CHECK-DAG: ucvtf [[OP1:v[0-9]+\.4s]], v0.4s 341 ; CHECK-DAG: ucvtf [[OP2:v[0-9]+\.4s]], v1.4s 342 ; CHECK-DAG: fcvtn v[[REG:[0-9]+]].4h, [[OP2]] 343 ; CHECK-DAG: fcvtn v0.4h, [[OP1]] 344 ; CHECK: ins v0.d[1], v[[REG]].d[0] 345 %1 = uitofp <8 x i32> %a to <8 x half> 346 ret <8 x half> %1 347 } 348 349 350 define <8 x half> @uitofp_i64(<8 x i64> %a) #0 { 351 ; CHECK-LABEL: uitofp_i64: 352 ; CHECK-DAG: ucvtf [[OP1:v[0-9]+\.2d]], v0.2d 353 ; CHECK-DAG: ucvtf [[OP2:v[0-9]+\.2d]], v1.2d 354 ; CHECK-DAG: fcvtn [[OP3:v[0-9]+]].2s, [[OP1]] 355 ; CHECK-DAG: fcvtn2 [[OP3]].4s, [[OP2]] 356 ; CHECK: fcvtn v0.4h, [[OP3]].4s 357 %1 = uitofp <8 x i64> %a to <8 x half> 358 ret <8 x half> %1 359 } 360 361 define void @test_insert_at_zero(half %a, <8 x half>* %b) #0 { 362 ; CHECK-LABEL: test_insert_at_zero: 363 ; CHECK-NEXT: str q0, [x0] 364 ; CHECK-NEXT: ret 365 %1 = insertelement <8 x half> undef, half %a, i64 0 366 store <8 x half> %1, <8 x half>* %b, align 4 367 ret void 368 } 369 370 define <8 x i8> @fptosi_i8(<8 x half> %a) #0 { 371 ; CHECK-LABEL: fptosi_i8: 372 ; CHECK-DAG: fcvtl [[LO:v[0-9]+\.4s]], v0.4h 373 ; CHECK-DAG: fcvtl2 [[HI:v[0-9]+\.4s]], v0.8h 374 ; CHECK-DAG: fcvtzs [[LOF32:v[0-9]+\.4s]], [[LO]] 375 ; CHECK-DAG: xtn [[I16:v[0-9]+]].4h, [[LOF32]] 376 ; CHECK-DAG: fcvtzs [[HIF32:v[0-9]+\.4s]], [[HI]] 377 ; CHECK-DAG: xtn2 [[I16]].8h, [[HIF32]] 378 ; CHECK-NEXT: xtn v0.8b, [[I16]].8h 379 ; CHECK-NEXT: ret 380 %1 = fptosi<8 x half> %a to <8 x i8> 381 ret <8 x i8> %1 382 } 383 384 define <8 x i16> @fptosi_i16(<8 x half> %a) #0 { 385 ; CHECK-LABEL: fptosi_i16: 386 ; CHECK-DAG: fcvtl [[LO:v[0-9]+\.4s]], v0.4h 387 ; CHECK-DAG: fcvtl2 [[HI:v[0-9]+\.4s]], v0.8h 388 ; CHECK-DAG: fcvtzs [[LOF32:v[0-9]+\.4s]], [[LO]] 389 ; CHECK-DAG: xtn [[I16:v[0-9]+]].4h, [[LOF32]] 390 ; CHECK-DAG: fcvtzs [[HIF32:v[0-9]+\.4s]], [[HI]] 391 ; CHECK-NEXT: xtn2 [[I16]].8h, [[HIF32]] 392 ; CHECK-NEXT: ret 393 %1 = fptosi<8 x half> %a to <8 x i16> 394 ret <8 x i16> %1 395 } 396 397 define <8 x i8> @fptoui_i8(<8 x half> %a) #0 { 398 ; CHECK-LABEL: fptoui_i8: 399 ; CHECK-DAG: fcvtl [[LO:v[0-9]+\.4s]], v0.4h 400 ; CHECK-DAG: fcvtl2 [[HI:v[0-9]+\.4s]], v0.8h 401 ; CHECK-DAG: fcvtzu [[LOF32:v[0-9]+\.4s]], [[LO]] 402 ; CHECK-DAG: xtn [[I16:v[0-9]+]].4h, [[LOF32]] 403 ; CHECK-DAG: fcvtzu [[HIF32:v[0-9]+\.4s]], [[HI]] 404 ; CHECK-DAG: xtn2 [[I16]].8h, [[HIF32]] 405 ; CHECK-NEXT: xtn v0.8b, [[I16]].8h 406 ; CHECK-NEXT: ret 407 %1 = fptoui<8 x half> %a to <8 x i8> 408 ret <8 x i8> %1 409 } 410 411 define <8 x i16> @fptoui_i16(<8 x half> %a) #0 { 412 ; CHECK-LABEL: fptoui_i16: 413 ; CHECK-DAG: fcvtl [[LO:v[0-9]+\.4s]], v0.4h 414 ; CHECK-DAG: fcvtl2 [[HI:v[0-9]+\.4s]], v0.8h 415 ; CHECK-DAG: fcvtzu [[LOF32:v[0-9]+\.4s]], [[LO]] 416 ; CHECK-DAG: xtn [[I16:v[0-9]+]].4h, [[LOF32]] 417 ; CHECK-DAG: fcvtzu [[HIF32:v[0-9]+\.4s]], [[HI]] 418 ; CHECK-NEXT: xtn2 [[I16]].8h, [[HIF32]] 419 ; CHECK-NEXT: ret 420 %1 = fptoui<8 x half> %a to <8 x i16> 421 ret <8 x i16> %1 422 } 423 424 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 425 define <8 x i1> @test_fcmp_une(<8 x half> %a, <8 x half> %b) #0 { 426 %1 = fcmp une <8 x half> %a, %b 427 ret <8 x i1> %1 428 } 429 430 ; FileCheck checks are unwieldy with 16 fcvt and 16 csel tests. Skipped. 431 define <8 x i1> @test_fcmp_ueq(<8 x half> %a, <8 x half> %b) #0 { 432 %1 = fcmp ueq <8 x half> %a, %b 433 ret <8 x i1> %1 434 } 435 436 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 437 define <8 x i1> @test_fcmp_ugt(<8 x half> %a, <8 x half> %b) #0 { 438 %1 = fcmp ugt <8 x half> %a, %b 439 ret <8 x i1> %1 440 } 441 442 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 443 define <8 x i1> @test_fcmp_uge(<8 x half> %a, <8 x half> %b) #0 { 444 %1 = fcmp uge <8 x half> %a, %b 445 ret <8 x i1> %1 446 } 447 448 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 449 define <8 x i1> @test_fcmp_ult(<8 x half> %a, <8 x half> %b) #0 { 450 %1 = fcmp ult <8 x half> %a, %b 451 ret <8 x i1> %1 452 } 453 454 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 455 define <8 x i1> @test_fcmp_ule(<8 x half> %a, <8 x half> %b) #0 { 456 %1 = fcmp ule <8 x half> %a, %b 457 ret <8 x i1> %1 458 } 459 460 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 461 define <8 x i1> @test_fcmp_uno(<8 x half> %a, <8 x half> %b) #0 { 462 %1 = fcmp uno <8 x half> %a, %b 463 ret <8 x i1> %1 464 } 465 466 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 467 define <8 x i1> @test_fcmp_one(<8 x half> %a, <8 x half> %b) #0 { 468 %1 = fcmp one <8 x half> %a, %b 469 ret <8 x i1> %1 470 } 471 472 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 473 define <8 x i1> @test_fcmp_oeq(<8 x half> %a, <8 x half> %b) #0 { 474 %1 = fcmp oeq <8 x half> %a, %b 475 ret <8 x i1> %1 476 } 477 478 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 479 define <8 x i1> @test_fcmp_ogt(<8 x half> %a, <8 x half> %b) #0 { 480 %1 = fcmp ogt <8 x half> %a, %b 481 ret <8 x i1> %1 482 } 483 484 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 485 define <8 x i1> @test_fcmp_oge(<8 x half> %a, <8 x half> %b) #0 { 486 %1 = fcmp oge <8 x half> %a, %b 487 ret <8 x i1> %1 488 } 489 490 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 491 define <8 x i1> @test_fcmp_olt(<8 x half> %a, <8 x half> %b) #0 { 492 %1 = fcmp olt <8 x half> %a, %b 493 ret <8 x i1> %1 494 } 495 496 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 497 define <8 x i1> @test_fcmp_ole(<8 x half> %a, <8 x half> %b) #0 { 498 %1 = fcmp ole <8 x half> %a, %b 499 ret <8 x i1> %1 500 } 501 502 ; FileCheck checks are unwieldy with 16 fcvt and 8 csel tests. Skipped. 503 define <8 x i1> @test_fcmp_ord(<8 x half> %a, <8 x half> %b) #0 { 504 %1 = fcmp ord <8 x half> %a, %b 505 ret <8 x i1> %1 506 } 507 508 attributes #0 = { nounwind } 509