|
2 | 2 | ; RUN: llc -mtriple=aarch64 -global-isel=0 -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD
|
3 | 3 | ; RUN: llc -mtriple=aarch64 -global-isel=1 -global-isel-abort=2 -verify-machineinstrs %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI
|
4 | 4 |
|
5 |
| -; CHECK-GI: warning: Instruction selection used fallback path for tv2i8 |
6 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv3i8 |
7 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv4i8 |
8 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv2i16 |
9 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv3i16 |
10 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv3i32 |
11 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv2i128 |
12 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv2f16 |
13 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv3f16 |
14 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv3f32 |
15 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tv2f128 |
16 |
| - |
17 | 5 | define i8 @ti8(i1 %c, ptr %p, i8 %a, i8 %b) {
|
18 | 6 | ; CHECK-SD-LABEL: ti8:
|
19 | 7 | ; CHECK-SD: // %bb.0: // %entry
|
|
271 | 259 | }
|
272 | 260 |
|
273 | 261 | define <2 x i8> @tv2i8(i1 %c, ptr %p, <2 x i8> %a, <2 x i8> %b) {
|
274 |
| -; CHECK-LABEL: tv2i8: |
275 |
| -; CHECK: // %bb.0: // %entry |
276 |
| -; CHECK-NEXT: tbz w0, #0, .LBB9_2 |
277 |
| -; CHECK-NEXT: // %bb.1: // %t |
278 |
| -; CHECK-NEXT: fmov d1, d0 |
279 |
| -; CHECK-NEXT: str wzr, [x1] |
280 |
| -; CHECK-NEXT: .LBB9_2: // %e |
281 |
| -; CHECK-NEXT: fmov d0, d1 |
282 |
| -; CHECK-NEXT: ret |
| 262 | +; CHECK-SD-LABEL: tv2i8: |
| 263 | +; CHECK-SD: // %bb.0: // %entry |
| 264 | +; CHECK-SD-NEXT: tbz w0, #0, .LBB9_2 |
| 265 | +; CHECK-SD-NEXT: // %bb.1: // %t |
| 266 | +; CHECK-SD-NEXT: fmov d1, d0 |
| 267 | +; CHECK-SD-NEXT: str wzr, [x1] |
| 268 | +; CHECK-SD-NEXT: .LBB9_2: // %e |
| 269 | +; CHECK-SD-NEXT: fmov d0, d1 |
| 270 | +; CHECK-SD-NEXT: ret |
| 271 | +; |
| 272 | +; CHECK-GI-LABEL: tv2i8: |
| 273 | +; CHECK-GI: // %bb.0: // %entry |
| 274 | +; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 |
| 275 | +; CHECK-GI-NEXT: // kill: def $d1 killed $d1 def $q1 |
| 276 | +; CHECK-GI-NEXT: tbz w0, #0, .LBB9_2 |
| 277 | +; CHECK-GI-NEXT: // %bb.1: // %t |
| 278 | +; CHECK-GI-NEXT: mov w8, v0.s[1] |
| 279 | +; CHECK-GI-NEXT: str wzr, [x1] |
| 280 | +; CHECK-GI-NEXT: mov v0.b[1], w8 |
| 281 | +; CHECK-GI-NEXT: fmov d1, d0 |
| 282 | +; CHECK-GI-NEXT: b .LBB9_3 |
| 283 | +; CHECK-GI-NEXT: .LBB9_2: |
| 284 | +; CHECK-GI-NEXT: mov w8, v1.s[1] |
| 285 | +; CHECK-GI-NEXT: mov v1.b[1], w8 |
| 286 | +; CHECK-GI-NEXT: .LBB9_3: // %e |
| 287 | +; CHECK-GI-NEXT: umov w8, v1.b[0] |
| 288 | +; CHECK-GI-NEXT: umov w9, v1.b[1] |
| 289 | +; CHECK-GI-NEXT: mov v0.s[0], w8 |
| 290 | +; CHECK-GI-NEXT: mov v0.s[1], w9 |
| 291 | +; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 |
| 292 | +; CHECK-GI-NEXT: ret |
283 | 293 | entry:
|
284 | 294 | br i1 %c, label %t, label %e
|
285 | 295 | t:
|
|
291 | 301 | }
|
292 | 302 |
|
293 | 303 | define <3 x i8> @tv3i8(i1 %c, ptr %p, <3 x i8> %a, <3 x i8> %b) {
|
294 |
| -; CHECK-LABEL: tv3i8: |
295 |
| -; CHECK: // %bb.0: // %entry |
296 |
| -; CHECK-NEXT: tbz w0, #0, .LBB10_2 |
297 |
| -; CHECK-NEXT: // %bb.1: // %t |
298 |
| -; CHECK-NEXT: mov w5, w2 |
299 |
| -; CHECK-NEXT: mov w6, w3 |
300 |
| -; CHECK-NEXT: mov w7, w4 |
301 |
| -; CHECK-NEXT: str wzr, [x1] |
302 |
| -; CHECK-NEXT: .LBB10_2: // %e |
303 |
| -; CHECK-NEXT: mov w0, w5 |
304 |
| -; CHECK-NEXT: mov w1, w6 |
305 |
| -; CHECK-NEXT: mov w2, w7 |
306 |
| -; CHECK-NEXT: ret |
| 304 | +; CHECK-SD-LABEL: tv3i8: |
| 305 | +; CHECK-SD: // %bb.0: // %entry |
| 306 | +; CHECK-SD-NEXT: tbz w0, #0, .LBB10_2 |
| 307 | +; CHECK-SD-NEXT: // %bb.1: // %t |
| 308 | +; CHECK-SD-NEXT: mov w5, w2 |
| 309 | +; CHECK-SD-NEXT: mov w6, w3 |
| 310 | +; CHECK-SD-NEXT: mov w7, w4 |
| 311 | +; CHECK-SD-NEXT: str wzr, [x1] |
| 312 | +; CHECK-SD-NEXT: .LBB10_2: // %e |
| 313 | +; CHECK-SD-NEXT: mov w0, w5 |
| 314 | +; CHECK-SD-NEXT: mov w1, w6 |
| 315 | +; CHECK-SD-NEXT: mov w2, w7 |
| 316 | +; CHECK-SD-NEXT: ret |
| 317 | +; |
| 318 | +; CHECK-GI-LABEL: tv3i8: |
| 319 | +; CHECK-GI: // %bb.0: // %entry |
| 320 | +; CHECK-GI-NEXT: tbz w0, #0, .LBB10_2 |
| 321 | +; CHECK-GI-NEXT: // %bb.1: // %t |
| 322 | +; CHECK-GI-NEXT: fmov s0, w2 |
| 323 | +; CHECK-GI-NEXT: str wzr, [x1] |
| 324 | +; CHECK-GI-NEXT: mov v0.b[1], w3 |
| 325 | +; CHECK-GI-NEXT: mov v0.b[2], w4 |
| 326 | +; CHECK-GI-NEXT: b .LBB10_3 |
| 327 | +; CHECK-GI-NEXT: .LBB10_2: |
| 328 | +; CHECK-GI-NEXT: fmov s0, w5 |
| 329 | +; CHECK-GI-NEXT: mov v0.b[1], w6 |
| 330 | +; CHECK-GI-NEXT: mov v0.b[2], w7 |
| 331 | +; CHECK-GI-NEXT: .LBB10_3: // %e |
| 332 | +; CHECK-GI-NEXT: umov w0, v0.b[0] |
| 333 | +; CHECK-GI-NEXT: umov w1, v0.b[1] |
| 334 | +; CHECK-GI-NEXT: umov w2, v0.b[2] |
| 335 | +; CHECK-GI-NEXT: ret |
307 | 336 | entry:
|
308 | 337 | br i1 %c, label %t, label %e
|
309 | 338 | t:
|
|
315 | 344 | }
|
316 | 345 |
|
317 | 346 | define <4 x i8> @tv4i8(i1 %c, ptr %p, <4 x i8> %a, <4 x i8> %b) {
|
318 |
| -; CHECK-LABEL: tv4i8: |
319 |
| -; CHECK: // %bb.0: // %entry |
320 |
| -; CHECK-NEXT: tbz w0, #0, .LBB11_2 |
321 |
| -; CHECK-NEXT: // %bb.1: // %t |
322 |
| -; CHECK-NEXT: fmov d1, d0 |
323 |
| -; CHECK-NEXT: str wzr, [x1] |
324 |
| -; CHECK-NEXT: .LBB11_2: // %e |
325 |
| -; CHECK-NEXT: fmov d0, d1 |
326 |
| -; CHECK-NEXT: ret |
| 347 | +; CHECK-SD-LABEL: tv4i8: |
| 348 | +; CHECK-SD: // %bb.0: // %entry |
| 349 | +; CHECK-SD-NEXT: tbz w0, #0, .LBB11_2 |
| 350 | +; CHECK-SD-NEXT: // %bb.1: // %t |
| 351 | +; CHECK-SD-NEXT: fmov d1, d0 |
| 352 | +; CHECK-SD-NEXT: str wzr, [x1] |
| 353 | +; CHECK-SD-NEXT: .LBB11_2: // %e |
| 354 | +; CHECK-SD-NEXT: fmov d0, d1 |
| 355 | +; CHECK-SD-NEXT: ret |
| 356 | +; |
| 357 | +; CHECK-GI-LABEL: tv4i8: |
| 358 | +; CHECK-GI: // %bb.0: // %entry |
| 359 | +; CHECK-GI-NEXT: tbz w0, #0, .LBB11_2 |
| 360 | +; CHECK-GI-NEXT: // %bb.1: // %t |
| 361 | +; CHECK-GI-NEXT: uzp1 v0.8b, v0.8b, v0.8b |
| 362 | +; CHECK-GI-NEXT: str wzr, [x1] |
| 363 | +; CHECK-GI-NEXT: ushll v0.8h, v0.8b, #0 |
| 364 | +; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 |
| 365 | +; CHECK-GI-NEXT: ret |
| 366 | +; CHECK-GI-NEXT: .LBB11_2: |
| 367 | +; CHECK-GI-NEXT: uzp1 v0.8b, v1.8b, v0.8b |
| 368 | +; CHECK-GI-NEXT: ushll v0.8h, v0.8b, #0 |
| 369 | +; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 |
| 370 | +; CHECK-GI-NEXT: ret |
327 | 371 | entry:
|
328 | 372 | br i1 %c, label %t, label %e
|
329 | 373 | t:
|
|
410 | 454 | }
|
411 | 455 |
|
412 | 456 | define <2 x i16> @tv2i16(i1 %c, ptr %p, <2 x i16> %a, <2 x i16> %b) {
|
413 |
| -; CHECK-LABEL: tv2i16: |
414 |
| -; CHECK: // %bb.0: // %entry |
415 |
| -; CHECK-NEXT: tbz w0, #0, .LBB15_2 |
416 |
| -; CHECK-NEXT: // %bb.1: // %t |
417 |
| -; CHECK-NEXT: fmov d1, d0 |
418 |
| -; CHECK-NEXT: str wzr, [x1] |
419 |
| -; CHECK-NEXT: .LBB15_2: // %e |
420 |
| -; CHECK-NEXT: fmov d0, d1 |
421 |
| -; CHECK-NEXT: ret |
| 457 | +; CHECK-SD-LABEL: tv2i16: |
| 458 | +; CHECK-SD: // %bb.0: // %entry |
| 459 | +; CHECK-SD-NEXT: tbz w0, #0, .LBB15_2 |
| 460 | +; CHECK-SD-NEXT: // %bb.1: // %t |
| 461 | +; CHECK-SD-NEXT: fmov d1, d0 |
| 462 | +; CHECK-SD-NEXT: str wzr, [x1] |
| 463 | +; CHECK-SD-NEXT: .LBB15_2: // %e |
| 464 | +; CHECK-SD-NEXT: fmov d0, d1 |
| 465 | +; CHECK-SD-NEXT: ret |
| 466 | +; |
| 467 | +; CHECK-GI-LABEL: tv2i16: |
| 468 | +; CHECK-GI: // %bb.0: // %entry |
| 469 | +; CHECK-GI-NEXT: tbz w0, #0, .LBB15_2 |
| 470 | +; CHECK-GI-NEXT: // %bb.1: // %t |
| 471 | +; CHECK-GI-NEXT: uzp1 v0.4h, v0.4h, v0.4h |
| 472 | +; CHECK-GI-NEXT: str wzr, [x1] |
| 473 | +; CHECK-GI-NEXT: ushll v0.4s, v0.4h, #0 |
| 474 | +; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 |
| 475 | +; CHECK-GI-NEXT: ret |
| 476 | +; CHECK-GI-NEXT: .LBB15_2: |
| 477 | +; CHECK-GI-NEXT: uzp1 v0.4h, v1.4h, v0.4h |
| 478 | +; CHECK-GI-NEXT: ushll v0.4s, v0.4h, #0 |
| 479 | +; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 |
| 480 | +; CHECK-GI-NEXT: ret |
422 | 481 | entry:
|
423 | 482 | br i1 %c, label %t, label %e
|
424 | 483 | t:
|
@@ -661,15 +720,19 @@ define <3 x i64> @tv3i64(i1 %c, ptr %p, <3 x i64> %a, <3 x i64> %b) {
|
661 | 720 | ; CHECK-GI-NEXT: tbz w0, #0, .LBB25_2
|
662 | 721 | ; CHECK-GI-NEXT: // %bb.1: // %t
|
663 | 722 | ; CHECK-GI-NEXT: fmov d6, d0
|
| 723 | +; CHECK-GI-NEXT: fmov d7, d2 |
664 | 724 | ; CHECK-GI-NEXT: str wzr, [x1]
|
665 | 725 | ; CHECK-GI-NEXT: mov v6.d[1], v1.d[0]
|
| 726 | +; CHECK-GI-NEXT: mov v2.16b, v7.16b |
| 727 | +; CHECK-GI-NEXT: // kill: def $d2 killed $d2 killed $q2 |
666 | 728 | ; CHECK-GI-NEXT: mov d1, v6.d[1]
|
667 | 729 | ; CHECK-GI-NEXT: mov v0.16b, v6.16b
|
668 | 730 | ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0
|
669 | 731 | ; CHECK-GI-NEXT: ret
|
670 | 732 | ; CHECK-GI-NEXT: .LBB25_2:
|
671 | 733 | ; CHECK-GI-NEXT: fmov d0, d3
|
672 | 734 | ; CHECK-GI-NEXT: fmov d2, d5
|
| 735 | +; CHECK-GI-NEXT: // kill: def $d2 killed $d2 killed $q2 |
673 | 736 | ; CHECK-GI-NEXT: mov v0.d[1], v4.d[0]
|
674 | 737 | ; CHECK-GI-NEXT: mov d1, v0.d[1]
|
675 | 738 | ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0
|
|
720 | 783 | }
|
721 | 784 |
|
722 | 785 | define <2 x i128> @tv2i128(i1 %c, ptr %p, <2 x i128> %a, <2 x i128> %b) {
|
723 |
| -; CHECK-LABEL: tv2i128: |
724 |
| -; CHECK: // %bb.0: // %entry |
725 |
| -; CHECK-NEXT: tbz w0, #0, .LBB27_2 |
726 |
| -; CHECK-NEXT: // %bb.1: // %t |
727 |
| -; CHECK-NEXT: mov x6, x2 |
728 |
| -; CHECK-NEXT: mov x7, x3 |
729 |
| -; CHECK-NEXT: str wzr, [x1] |
730 |
| -; CHECK-NEXT: b .LBB27_3 |
731 |
| -; CHECK-NEXT: .LBB27_2: |
732 |
| -; CHECK-NEXT: ldp x4, x5, [sp] |
733 |
| -; CHECK-NEXT: .LBB27_3: // %e |
734 |
| -; CHECK-NEXT: mov x0, x6 |
735 |
| -; CHECK-NEXT: mov x1, x7 |
736 |
| -; CHECK-NEXT: mov x2, x4 |
737 |
| -; CHECK-NEXT: mov x3, x5 |
738 |
| -; CHECK-NEXT: ret |
| 786 | +; CHECK-SD-LABEL: tv2i128: |
| 787 | +; CHECK-SD: // %bb.0: // %entry |
| 788 | +; CHECK-SD-NEXT: tbz w0, #0, .LBB27_2 |
| 789 | +; CHECK-SD-NEXT: // %bb.1: // %t |
| 790 | +; CHECK-SD-NEXT: mov x6, x2 |
| 791 | +; CHECK-SD-NEXT: mov x7, x3 |
| 792 | +; CHECK-SD-NEXT: str wzr, [x1] |
| 793 | +; CHECK-SD-NEXT: b .LBB27_3 |
| 794 | +; CHECK-SD-NEXT: .LBB27_2: |
| 795 | +; CHECK-SD-NEXT: ldp x4, x5, [sp] |
| 796 | +; CHECK-SD-NEXT: .LBB27_3: // %e |
| 797 | +; CHECK-SD-NEXT: mov x0, x6 |
| 798 | +; CHECK-SD-NEXT: mov x1, x7 |
| 799 | +; CHECK-SD-NEXT: mov x2, x4 |
| 800 | +; CHECK-SD-NEXT: mov x3, x5 |
| 801 | +; CHECK-SD-NEXT: ret |
| 802 | +; |
| 803 | +; CHECK-GI-LABEL: tv2i128: |
| 804 | +; CHECK-GI: // %bb.0: // %entry |
| 805 | +; CHECK-GI-NEXT: tbz w0, #0, .LBB27_2 |
| 806 | +; CHECK-GI-NEXT: // %bb.1: // %t |
| 807 | +; CHECK-GI-NEXT: mov x9, x2 |
| 808 | +; CHECK-GI-NEXT: mov x10, x3 |
| 809 | +; CHECK-GI-NEXT: mov x2, x4 |
| 810 | +; CHECK-GI-NEXT: mov x3, x5 |
| 811 | +; CHECK-GI-NEXT: str wzr, [x1] |
| 812 | +; CHECK-GI-NEXT: mov x0, x9 |
| 813 | +; CHECK-GI-NEXT: mov x1, x10 |
| 814 | +; CHECK-GI-NEXT: ret |
| 815 | +; CHECK-GI-NEXT: .LBB27_2: |
| 816 | +; CHECK-GI-NEXT: ldp x2, x3, [sp] |
| 817 | +; CHECK-GI-NEXT: mov x0, x6 |
| 818 | +; CHECK-GI-NEXT: mov x1, x7 |
| 819 | +; CHECK-GI-NEXT: ret |
739 | 820 | entry:
|
740 | 821 | br i1 %c, label %t, label %e
|
741 | 822 | t:
|
@@ -998,15 +1079,19 @@ define <3 x double> @tv3f64(i1 %c, ptr %p, <3 x double> %a, <3 x double> %b) {
|
998 | 1079 | ; CHECK-GI-NEXT: tbz w0, #0, .LBB38_2
|
999 | 1080 | ; CHECK-GI-NEXT: // %bb.1: // %t
|
1000 | 1081 | ; CHECK-GI-NEXT: fmov d6, d0
|
| 1082 | +; CHECK-GI-NEXT: fmov d7, d2 |
1001 | 1083 | ; CHECK-GI-NEXT: str wzr, [x1]
|
1002 | 1084 | ; CHECK-GI-NEXT: mov v6.d[1], v1.d[0]
|
| 1085 | +; CHECK-GI-NEXT: mov v2.16b, v7.16b |
| 1086 | +; CHECK-GI-NEXT: // kill: def $d2 killed $d2 killed $q2 |
1003 | 1087 | ; CHECK-GI-NEXT: mov d1, v6.d[1]
|
1004 | 1088 | ; CHECK-GI-NEXT: mov v0.16b, v6.16b
|
1005 | 1089 | ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0
|
1006 | 1090 | ; CHECK-GI-NEXT: ret
|
1007 | 1091 | ; CHECK-GI-NEXT: .LBB38_2:
|
1008 | 1092 | ; CHECK-GI-NEXT: fmov d0, d3
|
1009 | 1093 | ; CHECK-GI-NEXT: fmov d2, d5
|
| 1094 | +; CHECK-GI-NEXT: // kill: def $d2 killed $d2 killed $q2 |
1010 | 1095 | ; CHECK-GI-NEXT: mov v0.d[1], v4.d[0]
|
1011 | 1096 | ; CHECK-GI-NEXT: mov d1, v0.d[1]
|
1012 | 1097 | ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0
|
@@ -1057,17 +1142,41 @@ e:
|
1057 | 1142 | }
|
1058 | 1143 |
|
1059 | 1144 | define <2 x fp128> @tv2f128(i1 %c, ptr %p, <2 x fp128> %a, <2 x fp128> %b) {
|
1060 |
| -; CHECK-LABEL: tv2f128: |
1061 |
| -; CHECK: // %bb.0: // %entry |
1062 |
| -; CHECK-NEXT: tbz w0, #0, .LBB40_2 |
1063 |
| -; CHECK-NEXT: // %bb.1: // %t |
1064 |
| -; CHECK-NEXT: mov v2.16b, v0.16b |
1065 |
| -; CHECK-NEXT: mov v3.16b, v1.16b |
1066 |
| -; CHECK-NEXT: str wzr, [x1] |
1067 |
| -; CHECK-NEXT: .LBB40_2: // %e |
1068 |
| -; CHECK-NEXT: mov v0.16b, v2.16b |
1069 |
| -; CHECK-NEXT: mov v1.16b, v3.16b |
1070 |
| -; CHECK-NEXT: ret |
| 1145 | +; CHECK-SD-LABEL: tv2f128: |
| 1146 | +; CHECK-SD: // %bb.0: // %entry |
| 1147 | +; CHECK-SD-NEXT: tbz w0, #0, .LBB40_2 |
| 1148 | +; CHECK-SD-NEXT: // %bb.1: // %t |
| 1149 | +; CHECK-SD-NEXT: mov v2.16b, v0.16b |
| 1150 | +; CHECK-SD-NEXT: mov v3.16b, v1.16b |
| 1151 | +; CHECK-SD-NEXT: str wzr, [x1] |
| 1152 | +; CHECK-SD-NEXT: .LBB40_2: // %e |
| 1153 | +; CHECK-SD-NEXT: mov v0.16b, v2.16b |
| 1154 | +; CHECK-SD-NEXT: mov v1.16b, v3.16b |
| 1155 | +; CHECK-SD-NEXT: ret |
| 1156 | +; |
| 1157 | +; CHECK-GI-LABEL: tv2f128: |
| 1158 | +; CHECK-GI: // %bb.0: // %entry |
| 1159 | +; CHECK-GI-NEXT: tbz w0, #0, .LBB40_2 |
| 1160 | +; CHECK-GI-NEXT: // %bb.1: // %t |
| 1161 | +; CHECK-GI-NEXT: mov d4, v1.d[1] |
| 1162 | +; CHECK-GI-NEXT: mov d5, v0.d[1] |
| 1163 | +; CHECK-GI-NEXT: str wzr, [x1] |
| 1164 | +; CHECK-GI-NEXT: fmov d2, d0 |
| 1165 | +; CHECK-GI-NEXT: fmov d3, d1 |
| 1166 | +; CHECK-GI-NEXT: b .LBB40_3 |
| 1167 | +; CHECK-GI-NEXT: .LBB40_2: |
| 1168 | +; CHECK-GI-NEXT: mov d4, v3.d[1] |
| 1169 | +; CHECK-GI-NEXT: mov d5, v2.d[1] |
| 1170 | +; CHECK-GI-NEXT: .LBB40_3: // %e |
| 1171 | +; CHECK-GI-NEXT: fmov x8, d2 |
| 1172 | +; CHECK-GI-NEXT: fmov x9, d3 |
| 1173 | +; CHECK-GI-NEXT: mov v0.d[0], x8 |
| 1174 | +; CHECK-GI-NEXT: mov v1.d[0], x9 |
| 1175 | +; CHECK-GI-NEXT: fmov x8, d5 |
| 1176 | +; CHECK-GI-NEXT: fmov x9, d4 |
| 1177 | +; CHECK-GI-NEXT: mov v0.d[1], x8 |
| 1178 | +; CHECK-GI-NEXT: mov v1.d[1], x9 |
| 1179 | +; CHECK-GI-NEXT: ret |
1071 | 1180 | entry:
|
1072 | 1181 | br i1 %c, label %t, label %e
|
1073 | 1182 | t:
|
|
0 commit comments