| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| ; RUN: llc -verify-machineinstrs -mcpu=pwr9 < %s | FileCheck %s |
| target datalayout = "e-m:e-i64:64-n32:64" |
| target triple = "powerpc64le-unknown-linux-gnu" |
| |
| define zeroext i32 @test1(i64 %0, ptr %1) { |
| ; CHECK-LABEL: test1: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: stdu 1, -720(1) |
| ; CHECK-NEXT: .cfi_def_cfa_offset 720 |
| ; CHECK-NEXT: .cfi_offset r14, -144 |
| ; CHECK-NEXT: .cfi_offset r15, -136 |
| ; CHECK-NEXT: .cfi_offset r16, -128 |
| ; CHECK-NEXT: .cfi_offset r17, -120 |
| ; CHECK-NEXT: .cfi_offset r18, -112 |
| ; CHECK-NEXT: .cfi_offset r19, -104 |
| ; CHECK-NEXT: .cfi_offset r20, -96 |
| ; CHECK-NEXT: .cfi_offset r21, -88 |
| ; CHECK-NEXT: .cfi_offset r22, -80 |
| ; CHECK-NEXT: .cfi_offset r23, -72 |
| ; CHECK-NEXT: .cfi_offset r24, -64 |
| ; CHECK-NEXT: .cfi_offset r25, -56 |
| ; CHECK-NEXT: .cfi_offset r26, -48 |
| ; CHECK-NEXT: .cfi_offset r27, -40 |
| ; CHECK-NEXT: .cfi_offset r28, -32 |
| ; CHECK-NEXT: .cfi_offset r29, -24 |
| ; CHECK-NEXT: .cfi_offset r30, -16 |
| ; CHECK-NEXT: .cfi_offset r31, -8 |
| ; CHECK-NEXT: .cfi_offset r2, -152 |
| ; CHECK-NEXT: lis 5, 1 |
| ; CHECK-NEXT: std 30, 704(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 29, 696(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 5, 5, 1573 |
| ; CHECK-NEXT: std 28, 688(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 27, 680(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 26, 672(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 14, 576(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: rldic 5, 5, 34, 13 |
| ; CHECK-NEXT: std 15, 584(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 16, 592(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 17, 600(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: oris 6, 5, 13030 |
| ; CHECK-NEXT: oris 7, 5, 13066 |
| ; CHECK-NEXT: oris 8, 5, 13054 |
| ; CHECK-NEXT: oris 9, 5, 13042 |
| ; CHECK-NEXT: oris 10, 5, 13078 |
| ; CHECK-NEXT: oris 11, 5, 13115 |
| ; CHECK-NEXT: oris 12, 5, 13103 |
| ; CHECK-NEXT: oris 0, 5, 13091 |
| ; CHECK-NEXT: oris 30, 5, 13127 |
| ; CHECK-NEXT: oris 29, 5, 13164 |
| ; CHECK-NEXT: oris 28, 5, 13152 |
| ; CHECK-NEXT: oris 27, 5, 13139 |
| ; CHECK-NEXT: oris 26, 5, 13176 |
| ; CHECK-NEXT: ori 6, 6, 3704 |
| ; CHECK-NEXT: ori 7, 7, 44408 |
| ; CHECK-NEXT: ori 8, 8, 30840 |
| ; CHECK-NEXT: ori 9, 9, 17272 |
| ; CHECK-NEXT: ori 10, 10, 57976 |
| ; CHECK-NEXT: ori 11, 11, 33144 |
| ; CHECK-NEXT: ori 12, 12, 19576 |
| ; CHECK-NEXT: ori 0, 0, 6008 |
| ; CHECK-NEXT: ori 30, 30, 46712 |
| ; CHECK-NEXT: ori 29, 29, 21880 |
| ; CHECK-NEXT: ori 28, 28, 8312 |
| ; CHECK-NEXT: ori 27, 27, 60280 |
| ; CHECK-NEXT: ori 26, 26, 35448 |
| ; CHECK-NEXT: std 18, 608(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 6 |
| ; CHECK-NEXT: std 19, 616(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 20, 624(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 21, 632(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 22, 640(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 23, 648(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 24, 656(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 25, 664(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 31, 712(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 2, 568(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: std 6, 384(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 7 |
| ; CHECK-NEXT: lis 7, 354 |
| ; CHECK-NEXT: std 6, 376(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 8 |
| ; CHECK-NEXT: lis 8, 402 |
| ; CHECK-NEXT: std 6, 368(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 9 |
| ; CHECK-NEXT: lis 9, 451 |
| ; CHECK-NEXT: std 6, 360(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 10 |
| ; CHECK-NEXT: lis 10, 500 |
| ; CHECK-NEXT: std 6, 352(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 11 |
| ; CHECK-NEXT: lis 11, 549 |
| ; CHECK-NEXT: std 6, 344(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 12 |
| ; CHECK-NEXT: std 6, 336(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 0 |
| ; CHECK-NEXT: std 6, 328(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 30 |
| ; CHECK-NEXT: std 6, 320(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 29 |
| ; CHECK-NEXT: std 6, 312(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 28 |
| ; CHECK-NEXT: std 6, 304(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 27 |
| ; CHECK-NEXT: std 6, 296(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: add 6, 4, 26 |
| ; CHECK-NEXT: std 6, 288(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: oris 6, 5, 13213 |
| ; CHECK-NEXT: ori 6, 6, 10616 |
| ; CHECK-NEXT: add 6, 4, 6 |
| ; CHECK-NEXT: std 6, 280(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: oris 6, 5, 13200 |
| ; CHECK-NEXT: oris 5, 5, 13188 |
| ; CHECK-NEXT: ori 5, 5, 49016 |
| ; CHECK-NEXT: ori 6, 6, 62584 |
| ; CHECK-NEXT: add 5, 4, 5 |
| ; CHECK-NEXT: add 6, 4, 6 |
| ; CHECK-NEXT: std 5, 264(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 5, 4 |
| ; CHECK-NEXT: std 6, 272(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 6, 305 |
| ; CHECK-NEXT: ori 5, 5, 6291 |
| ; CHECK-NEXT: rldic 5, 5, 32, 13 |
| ; CHECK-NEXT: oris 5, 5, 29347 |
| ; CHECK-NEXT: ori 5, 5, 20088 |
| ; CHECK-NEXT: add 4, 4, 5 |
| ; CHECK-NEXT: lis 5, 268 |
| ; CHECK-NEXT: std 4, 256(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 585 |
| ; CHECK-NEXT: ori 4, 4, 61440 |
| ; CHECK-NEXT: std 4, 560(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 48 |
| ; CHECK-NEXT: ori 4, 4, 54272 |
| ; CHECK-NEXT: std 4, 552(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 97 |
| ; CHECK-NEXT: ori 4, 4, 43008 |
| ; CHECK-NEXT: std 4, 544(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 146 |
| ; CHECK-NEXT: ori 4, 4, 31744 |
| ; CHECK-NEXT: std 4, 536(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 195 |
| ; CHECK-NEXT: ori 4, 4, 20480 |
| ; CHECK-NEXT: std 4, 528(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 244 |
| ; CHECK-NEXT: ori 4, 4, 9216 |
| ; CHECK-NEXT: std 4, 520(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 292 |
| ; CHECK-NEXT: ori 4, 4, 63488 |
| ; CHECK-NEXT: std 4, 512(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 341 |
| ; CHECK-NEXT: ori 4, 4, 52224 |
| ; CHECK-NEXT: std 4, 504(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 390 |
| ; CHECK-NEXT: ori 4, 4, 40960 |
| ; CHECK-NEXT: std 4, 496(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 439 |
| ; CHECK-NEXT: ori 4, 4, 29696 |
| ; CHECK-NEXT: std 4, 488(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 488 |
| ; CHECK-NEXT: ori 4, 4, 18432 |
| ; CHECK-NEXT: std 4, 480(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 537 |
| ; CHECK-NEXT: ori 4, 4, 7168 |
| ; CHECK-NEXT: std 4, 472(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 36 |
| ; CHECK-NEXT: ori 4, 4, 40704 |
| ; CHECK-NEXT: std 4, 464(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 85 |
| ; CHECK-NEXT: ori 4, 4, 29440 |
| ; CHECK-NEXT: std 4, 456(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 134 |
| ; CHECK-NEXT: ori 4, 4, 18176 |
| ; CHECK-NEXT: std 4, 448(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 183 |
| ; CHECK-NEXT: ori 4, 4, 6912 |
| ; CHECK-NEXT: std 4, 440(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 231 |
| ; CHECK-NEXT: ori 4, 4, 61184 |
| ; CHECK-NEXT: std 4, 432(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 280 |
| ; CHECK-NEXT: ori 4, 4, 49920 |
| ; CHECK-NEXT: std 4, 424(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 329 |
| ; CHECK-NEXT: ori 4, 4, 38656 |
| ; CHECK-NEXT: std 4, 416(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 378 |
| ; CHECK-NEXT: ori 4, 4, 27392 |
| ; CHECK-NEXT: std 4, 408(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 427 |
| ; CHECK-NEXT: ori 4, 4, 16128 |
| ; CHECK-NEXT: std 4, 400(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 476 |
| ; CHECK-NEXT: ori 4, 4, 4864 |
| ; CHECK-NEXT: std 4, 248(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 524 |
| ; CHECK-NEXT: ori 4, 4, 59136 |
| ; CHECK-NEXT: std 4, 240(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 573 |
| ; CHECK-NEXT: ori 4, 4, 47872 |
| ; CHECK-NEXT: std 4, 232(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 24 |
| ; CHECK-NEXT: ori 4, 4, 27136 |
| ; CHECK-NEXT: std 4, 224(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 73 |
| ; CHECK-NEXT: ori 4, 4, 15872 |
| ; CHECK-NEXT: std 4, 216(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 122 |
| ; CHECK-NEXT: ori 4, 4, 4608 |
| ; CHECK-NEXT: std 4, 208(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 170 |
| ; CHECK-NEXT: ori 4, 4, 58880 |
| ; CHECK-NEXT: std 4, 200(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: lis 4, 219 |
| ; CHECK-NEXT: ori 4, 4, 47616 |
| ; CHECK-NEXT: std 4, 192(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 36352 |
| ; CHECK-NEXT: lis 5, 317 |
| ; CHECK-NEXT: ld 30, 192(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 184(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 25088 |
| ; CHECK-NEXT: lis 5, 366 |
| ; CHECK-NEXT: ld 29, 184(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 176(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 13824 |
| ; CHECK-NEXT: lis 5, 415 |
| ; CHECK-NEXT: ld 28, 176(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 168(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 2560 |
| ; CHECK-NEXT: lis 5, 463 |
| ; CHECK-NEXT: ld 27, 168(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 160(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 56832 |
| ; CHECK-NEXT: lis 5, 512 |
| ; CHECK-NEXT: ld 26, 160(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 152(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 45568 |
| ; CHECK-NEXT: lis 5, 561 |
| ; CHECK-NEXT: ld 25, 152(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 144(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 34304 |
| ; CHECK-NEXT: lis 5, 12 |
| ; CHECK-NEXT: ld 24, 144(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 136(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 13568 |
| ; CHECK-NEXT: lis 5, 61 |
| ; CHECK-NEXT: ld 23, 136(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 128(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 2304 |
| ; CHECK-NEXT: lis 5, 109 |
| ; CHECK-NEXT: std 4, 120(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 56576 |
| ; CHECK-NEXT: lis 5, 158 |
| ; CHECK-NEXT: ld 0, 120(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 112(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 45312 |
| ; CHECK-NEXT: lis 5, 207 |
| ; CHECK-NEXT: ld 22, 112(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 104(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 34048 |
| ; CHECK-NEXT: lis 5, 256 |
| ; CHECK-NEXT: ld 21, 104(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 96(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 5, 22784 |
| ; CHECK-NEXT: ld 5, 248(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 20, 96(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 88(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 6, 11520 |
| ; CHECK-NEXT: ld 6, 240(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 19, 88(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 80(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 7, 256 |
| ; CHECK-NEXT: ld 7, 232(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 18, 80(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 72(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 8, 54528 |
| ; CHECK-NEXT: ld 8, 224(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 17, 72(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 64(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 9, 43264 |
| ; CHECK-NEXT: ld 9, 216(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 16, 64(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 56(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 10, 32000 |
| ; CHECK-NEXT: ld 10, 208(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 15, 56(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 48(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: ori 4, 11, 20736 |
| ; CHECK-NEXT: ld 11, 200(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 14, 48(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 4, 40(1) # 8-byte Folded Spill |
| ; CHECK-NEXT: li 4, 0 |
| ; CHECK-NEXT: ld 31, 40(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: .p2align 4 |
| ; CHECK-NEXT: .LBB0_1: # =>This Loop Header: Depth=1 |
| ; CHECK-NEXT: # Child Loop BB0_2 Depth 2 |
| ; CHECK-NEXT: stw 4, 396(1) # 4-byte Folded Spill |
| ; CHECK-NEXT: li 4, 83 |
| ; CHECK-NEXT: mtctr 4 |
| ; CHECK-NEXT: ld 12, 256(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 4, 128(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: .p2align 5 |
| ; CHECK-NEXT: .LBB0_2: # Parent Loop BB0_1 Depth=1 |
| ; CHECK-NEXT: # => This Inner Loop Header: Depth=2 |
| ; CHECK-NEXT: ld 2, 560(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdux 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 552(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 5 |
| ; CHECK-NEXT: stdx 3, 12, 6 |
| ; CHECK-NEXT: stdx 3, 12, 7 |
| ; CHECK-NEXT: stdx 3, 12, 8 |
| ; CHECK-NEXT: stdx 3, 12, 9 |
| ; CHECK-NEXT: stdx 3, 12, 10 |
| ; CHECK-NEXT: stdx 3, 12, 11 |
| ; CHECK-NEXT: stdx 3, 12, 30 |
| ; CHECK-NEXT: stdx 3, 12, 29 |
| ; CHECK-NEXT: stdx 3, 12, 28 |
| ; CHECK-NEXT: stdx 3, 12, 27 |
| ; CHECK-NEXT: stdx 3, 12, 26 |
| ; CHECK-NEXT: stdx 3, 12, 25 |
| ; CHECK-NEXT: stdx 3, 12, 24 |
| ; CHECK-NEXT: stdx 3, 12, 23 |
| ; CHECK-NEXT: stdx 3, 12, 4 |
| ; CHECK-NEXT: stdx 3, 12, 0 |
| ; CHECK-NEXT: stdx 3, 12, 22 |
| ; CHECK-NEXT: stdx 3, 12, 21 |
| ; CHECK-NEXT: stdx 3, 12, 20 |
| ; CHECK-NEXT: stdx 3, 12, 19 |
| ; CHECK-NEXT: stdx 3, 12, 18 |
| ; CHECK-NEXT: stdx 3, 12, 17 |
| ; CHECK-NEXT: stdx 3, 12, 16 |
| ; CHECK-NEXT: stdx 3, 12, 15 |
| ; CHECK-NEXT: stdx 3, 12, 14 |
| ; CHECK-NEXT: stdx 3, 12, 31 |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 544(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 536(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 528(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 520(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 512(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 504(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 496(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 488(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 480(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 472(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 464(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 456(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 448(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 440(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 432(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 424(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 416(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 408(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: ld 2, 400(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: stdx 3, 12, 2 |
| ; CHECK-NEXT: bdnz .LBB0_2 |
| ; CHECK-NEXT: # %bb.3: |
| ; CHECK-NEXT: ld 12, 384(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: lwz 4, 396(1) # 4-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 376(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: addi 4, 4, 1 |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 368(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 360(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 352(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 344(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 336(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 328(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 320(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 312(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 304(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 296(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 288(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 280(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: ld 12, 272(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: xoris 12, 4, 6 |
| ; CHECK-NEXT: cmplwi 12, 6784 |
| ; CHECK-NEXT: ld 12, 264(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: std 3, 0(12) |
| ; CHECK-NEXT: bne 0, .LBB0_1 |
| ; CHECK-NEXT: # %bb.4: |
| ; CHECK-NEXT: ld 2, 568(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 31, 712(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 30, 704(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 29, 696(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: li 3, 0 |
| ; CHECK-NEXT: ld 28, 688(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 27, 680(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 26, 672(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 25, 664(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 24, 656(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 23, 648(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 22, 640(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 21, 632(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 20, 624(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 19, 616(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 18, 608(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 17, 600(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 16, 592(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 15, 584(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: ld 14, 576(1) # 8-byte Folded Reload |
| ; CHECK-NEXT: addi 1, 1, 720 |
| ; CHECK-NEXT: blr |
| %3 = getelementptr inbounds i64, ptr %1, i64 144115188075855 |
| %4 = getelementptr i64, ptr %1, i64 144115586875855 |
| %5 = getelementptr i64, ptr %1, i64 144115587175855 |
| %6 = getelementptr i64, ptr %1, i64 144115587075855 |
| %7 = getelementptr i64, ptr %1, i64 144115586975855 |
| %8 = getelementptr i64, ptr %1, i64 144115587275855 |
| %9 = getelementptr i64, ptr %1, i64 144115587575855 |
| %10 = getelementptr i64, ptr %1, i64 144115587475855 |
| %11 = getelementptr i64, ptr %1, i64 144115587375855 |
| %12 = getelementptr i64, ptr %1, i64 144115587675855 |
| %13 = getelementptr i64, ptr %1, i64 144115587975855 |
| %14 = getelementptr i64, ptr %1, i64 144115587875855 |
| %15 = getelementptr i64, ptr %1, i64 144115587775855 |
| %16 = getelementptr i64, ptr %1, i64 144115588075855 |
| %17 = getelementptr i64, ptr %1, i64 144115588375855 |
| %18 = getelementptr i64, ptr %1, i64 144115588275855 |
| %19 = getelementptr i64, ptr %1, i64 144115588175855 |
| br label %20 |
| |
| 20: ; preds = %2, %109 |
| %21 = phi i32 [ 0, %2 ], [ %110, %109 ] |
| br label %22 |
| |
| 22: ; preds = %22, %20 |
| %23 = phi i64 [ 0, %20 ], [ %107, %22 ] |
| %24 = mul i64 %23, 400000 |
| %25 = getelementptr i64, ptr %3, i64 %24 |
| %26 = or disjoint i64 %23, 1 |
| %27 = mul i64 %26, 400000 |
| %28 = getelementptr i64, ptr %3, i64 %27 |
| %29 = or disjoint i64 %23, 2 |
| %30 = mul i64 %29, 400000 |
| %31 = getelementptr i64, ptr %3, i64 %30 |
| %32 = or disjoint i64 %23, 3 |
| %33 = mul i64 %32, 400000 |
| %34 = getelementptr i64, ptr %3, i64 %33 |
| %35 = mul i64 %23, 400000 |
| %36 = add i64 %35, 1600000 |
| %37 = getelementptr i64, ptr %3, i64 %36 |
| %38 = mul i64 %23, 400000 |
| %39 = add i64 %38, 2000000 |
| %40 = getelementptr i64, ptr %3, i64 %39 |
| %41 = mul i64 %23, 400000 |
| %42 = add i64 %41, 2400000 |
| %43 = getelementptr i64, ptr %3, i64 %42 |
| %44 = mul i64 %23, 400000 |
| %45 = add i64 %44, 2800000 |
| %46 = getelementptr i64, ptr %3, i64 %45 |
| %47 = mul i64 %23, 400000 |
| %48 = add i64 %47, 3200000 |
| %49 = getelementptr i64, ptr %3, i64 %48 |
| %50 = mul i64 %23, 400000 |
| %51 = add i64 %50, 3600000 |
| %52 = getelementptr i64, ptr %3, i64 %51 |
| %53 = mul i64 %23, 400000 |
| %54 = add i64 %53, 4000000 |
| %55 = getelementptr i64, ptr %3, i64 %54 |
| %56 = mul i64 %23, 400000 |
| %57 = add i64 %56, 4400000 |
| %58 = getelementptr i64, ptr %3, i64 %57 |
| %59 = getelementptr inbounds i64, ptr %25, i64 400000 |
| %60 = getelementptr inbounds i64, ptr %28, i64 400000 |
| %61 = getelementptr inbounds i64, ptr %31, i64 400000 |
| %62 = getelementptr inbounds i64, ptr %34, i64 400000 |
| %63 = getelementptr inbounds i64, ptr %37, i64 400000 |
| %64 = getelementptr inbounds i64, ptr %40, i64 400000 |
| %65 = getelementptr inbounds i64, ptr %43, i64 400000 |
| %66 = getelementptr inbounds i64, ptr %46, i64 400000 |
| %67 = getelementptr inbounds i64, ptr %49, i64 400000 |
| %68 = getelementptr inbounds i64, ptr %52, i64 400000 |
| %69 = getelementptr inbounds i64, ptr %55, i64 400000 |
| %70 = getelementptr inbounds i64, ptr %58, i64 400000 |
| store i64 %0, ptr %59, align 8 |
| store i64 %0, ptr %60, align 8 |
| store i64 %0, ptr %61, align 8 |
| store i64 %0, ptr %62, align 8 |
| store i64 %0, ptr %63, align 8 |
| store i64 %0, ptr %64, align 8 |
| store i64 %0, ptr %65, align 8 |
| store i64 %0, ptr %66, align 8 |
| store i64 %0, ptr %67, align 8 |
| store i64 %0, ptr %68, align 8 |
| store i64 %0, ptr %69, align 8 |
| store i64 %0, ptr %70, align 8 |
| %71 = getelementptr inbounds i64, ptr %25, i64 700000 |
| %72 = getelementptr inbounds i64, ptr %28, i64 700000 |
| %73 = getelementptr inbounds i64, ptr %31, i64 700000 |
| %74 = getelementptr inbounds i64, ptr %34, i64 700000 |
| %75 = getelementptr inbounds i64, ptr %37, i64 700000 |
| %76 = getelementptr inbounds i64, ptr %40, i64 700000 |
| %77 = getelementptr inbounds i64, ptr %43, i64 700000 |
| %78 = getelementptr inbounds i64, ptr %46, i64 700000 |
| %79 = getelementptr inbounds i64, ptr %49, i64 700000 |
| %80 = getelementptr inbounds i64, ptr %52, i64 700000 |
| %81 = getelementptr inbounds i64, ptr %55, i64 700000 |
| %82 = getelementptr inbounds i64, ptr %58, i64 700000 |
| store i64 %0, ptr %71, align 8 |
| store i64 %0, ptr %72, align 8 |
| store i64 %0, ptr %73, align 8 |
| store i64 %0, ptr %74, align 8 |
| store i64 %0, ptr %75, align 8 |
| store i64 %0, ptr %76, align 8 |
| store i64 %0, ptr %77, align 8 |
| store i64 %0, ptr %78, align 8 |
| store i64 %0, ptr %79, align 8 |
| store i64 %0, ptr %80, align 8 |
| store i64 %0, ptr %81, align 8 |
| store i64 %0, ptr %82, align 8 |
| %83 = getelementptr inbounds i64, ptr %25, i64 600000 |
| %84 = getelementptr inbounds i64, ptr %28, i64 600000 |
| %85 = getelementptr inbounds i64, ptr %31, i64 600000 |
| %86 = getelementptr inbounds i64, ptr %34, i64 600000 |
| %87 = getelementptr inbounds i64, ptr %37, i64 600000 |
| %88 = getelementptr inbounds i64, ptr %40, i64 600000 |
| %89 = getelementptr inbounds i64, ptr %43, i64 600000 |
| %90 = getelementptr inbounds i64, ptr %46, i64 600000 |
| %91 = getelementptr inbounds i64, ptr %49, i64 600000 |
| %92 = getelementptr inbounds i64, ptr %52, i64 600000 |
| %93 = getelementptr inbounds i64, ptr %55, i64 600000 |
| %94 = getelementptr inbounds i64, ptr %58, i64 600000 |
| store i64 %0, ptr %83, align 8 |
| store i64 %0, ptr %84, align 8 |
| store i64 %0, ptr %85, align 8 |
| store i64 %0, ptr %86, align 8 |
| store i64 %0, ptr %87, align 8 |
| store i64 %0, ptr %88, align 8 |
| store i64 %0, ptr %89, align 8 |
| store i64 %0, ptr %90, align 8 |
| store i64 %0, ptr %91, align 8 |
| store i64 %0, ptr %92, align 8 |
| store i64 %0, ptr %93, align 8 |
| store i64 %0, ptr %94, align 8 |
| %95 = getelementptr inbounds i64, ptr %25, i64 500000 |
| %96 = getelementptr inbounds i64, ptr %28, i64 500000 |
| %97 = getelementptr inbounds i64, ptr %31, i64 500000 |
| %98 = getelementptr inbounds i64, ptr %34, i64 500000 |
| %99 = getelementptr inbounds i64, ptr %37, i64 500000 |
| %100 = getelementptr inbounds i64, ptr %40, i64 500000 |
| %101 = getelementptr inbounds i64, ptr %43, i64 500000 |
| %102 = getelementptr inbounds i64, ptr %46, i64 500000 |
| %103 = getelementptr inbounds i64, ptr %49, i64 500000 |
| %104 = getelementptr inbounds i64, ptr %52, i64 500000 |
| %105 = getelementptr inbounds i64, ptr %55, i64 500000 |
| %106 = getelementptr inbounds i64, ptr %58, i64 500000 |
| store i64 %0, ptr %95, align 8 |
| store i64 %0, ptr %96, align 8 |
| store i64 %0, ptr %97, align 8 |
| store i64 %0, ptr %98, align 8 |
| store i64 %0, ptr %99, align 8 |
| store i64 %0, ptr %100, align 8 |
| store i64 %0, ptr %101, align 8 |
| store i64 %0, ptr %102, align 8 |
| store i64 %0, ptr %103, align 8 |
| store i64 %0, ptr %104, align 8 |
| store i64 %0, ptr %105, align 8 |
| store i64 %0, ptr %106, align 8 |
| %107 = add i64 %23, 12 |
| %108 = icmp eq i64 %107, 996 |
| br i1 %108, label %109, label %22 |
| |
| 109: ; preds = %22 |
| store i64 %0, ptr %4, align 8 |
| store i64 %0, ptr %5, align 8 |
| store i64 %0, ptr %6, align 8 |
| store i64 %0, ptr %7, align 8 |
| store i64 %0, ptr %8, align 8 |
| store i64 %0, ptr %9, align 8 |
| store i64 %0, ptr %10, align 8 |
| store i64 %0, ptr %11, align 8 |
| store i64 %0, ptr %12, align 8 |
| store i64 %0, ptr %13, align 8 |
| store i64 %0, ptr %14, align 8 |
| store i64 %0, ptr %15, align 8 |
| store i64 %0, ptr %16, align 8 |
| store i64 %0, ptr %17, align 8 |
| store i64 %0, ptr %18, align 8 |
| store i64 %0, ptr %19, align 8 |
| %110 = add nuw nsw i32 %21, 1 |
| %111 = icmp eq i32 %110, 400000 |
| br i1 %111, label %112, label %20 |
| |
| 112: ; preds = %109 |
| ret i32 0 |
| } |