@@ -406,3 +406,66 @@ body: |
406
406
%zext:_(<2 x s64>) = G_ZEXT %and(<2 x s1>)
407
407
$q0 = COPY %zext
408
408
...
409
+ ---
410
+ name : test_dont_combine_pointers
411
+ body : |
412
+ ; CHECK-LABEL: name: test_dont_combine_pointers
413
+ ; CHECK: bb.0:
414
+ ; CHECK-NEXT: successors: %bb.1(0x80000000)
415
+ ; CHECK-NEXT: {{ $}}
416
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(p0) = G_CONSTANT i64 0
417
+ ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -8
418
+ ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(p0) = G_INTTOPTR [[C1]](s64)
419
+ ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 -16
420
+ ; CHECK-NEXT: [[INTTOPTR1:%[0-9]+]]:_(p0) = G_INTTOPTR [[C2]](s64)
421
+ ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 false
422
+ ; CHECK-NEXT: {{ $}}
423
+ ; CHECK-NEXT: bb.1:
424
+ ; CHECK-NEXT: successors: %bb.2(0x60000000), %bb.3(0x20000000)
425
+ ; CHECK-NEXT: {{ $}}
426
+ ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(p0) = G_LOAD [[C]](p0) :: (load (p0))
427
+ ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](p0), [[INTTOPTR]]
428
+ ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](p0), [[INTTOPTR1]]
429
+ ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s1) = G_AND [[ICMP]], [[ICMP1]]
430
+ ; CHECK-NEXT: G_BRCOND [[AND]](s1), %bb.3
431
+ ; CHECK-NEXT: G_BR %bb.2
432
+ ; CHECK-NEXT: {{ $}}
433
+ ; CHECK-NEXT: bb.2:
434
+ ; CHECK-NEXT: successors: %bb.1(0x55555555), %bb.3(0x2aaaaaab)
435
+ ; CHECK-NEXT: {{ $}}
436
+ ; CHECK-NEXT: G_BRCOND [[C3]](s1), %bb.1
437
+ ; CHECK-NEXT: G_BR %bb.3
438
+ ; CHECK-NEXT: {{ $}}
439
+ ; CHECK-NEXT: bb.3:
440
+ ; CHECK-NEXT: successors: %bb.1(0x80000000)
441
+ ; CHECK-NEXT: {{ $}}
442
+ ; CHECK-NEXT: G_BR %bb.1
443
+ bb.1:
444
+ %1:_(p0) = G_CONSTANT i64 0
445
+ %3:_(s64) = G_CONSTANT i64 -8
446
+ %2:_(p0) = G_INTTOPTR %3(s64)
447
+ %6:_(s64) = G_CONSTANT i64 -16
448
+ %5:_(p0) = G_INTTOPTR %6(s64)
449
+ %10:_(s1) = G_CONSTANT i1 false
450
+
451
+ bb.2:
452
+ successors: %bb.4(0x60000000), %bb.3(0x20000000)
453
+
454
+ %0:_(p0) = G_LOAD %1(p0) :: (load (p0))
455
+ %4:_(s1) = G_ICMP intpred(eq), %0(p0), %2
456
+ %7:_(s1) = G_ICMP intpred(eq), %0(p0), %5
457
+ %8:_(s1) = G_OR %4, %7
458
+ %9:_(s1) = G_SELECT %8(s1), %10, %10
459
+ G_BRCOND %8(s1), %bb.4
460
+ G_BR %bb.3
461
+
462
+ bb.4:
463
+ successors: %bb.2(0x55555555), %bb.3(0x2aaaaaab)
464
+
465
+ G_BRCOND %10(s1), %bb.2
466
+ G_BR %bb.3
467
+
468
+ bb.3:
469
+ G_BR %bb.2
470
+
471
+ ...
0 commit comments