620 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			620 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; 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, i64* %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, i64* %1, i64 144115188075855
 | |
|   %4 = getelementptr i64, i64* %1, i64 144115586875855
 | |
|   %5 = getelementptr i64, i64* %1, i64 144115587175855
 | |
|   %6 = getelementptr i64, i64* %1, i64 144115587075855
 | |
|   %7 = getelementptr i64, i64* %1, i64 144115586975855
 | |
|   %8 = getelementptr i64, i64* %1, i64 144115587275855
 | |
|   %9 = getelementptr i64, i64* %1, i64 144115587575855
 | |
|   %10 = getelementptr i64, i64* %1, i64 144115587475855
 | |
|   %11 = getelementptr i64, i64* %1, i64 144115587375855
 | |
|   %12 = getelementptr i64, i64* %1, i64 144115587675855
 | |
|   %13 = getelementptr i64, i64* %1, i64 144115587975855
 | |
|   %14 = getelementptr i64, i64* %1, i64 144115587875855
 | |
|   %15 = getelementptr i64, i64* %1, i64 144115587775855
 | |
|   %16 = getelementptr i64, i64* %1, i64 144115588075855
 | |
|   %17 = getelementptr i64, i64* %1, i64 144115588375855
 | |
|   %18 = getelementptr i64, i64* %1, i64 144115588275855
 | |
|   %19 = getelementptr i64, i64* %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, i64* %3, i64 %24
 | |
|   %26 = or i64 %23, 1
 | |
|   %27 = mul i64 %26, 400000
 | |
|   %28 = getelementptr i64, i64* %3, i64 %27
 | |
|   %29 = or i64 %23, 2
 | |
|   %30 = mul i64 %29, 400000
 | |
|   %31 = getelementptr i64, i64* %3, i64 %30
 | |
|   %32 = or i64 %23, 3
 | |
|   %33 = mul i64 %32, 400000
 | |
|   %34 = getelementptr i64, i64* %3, i64 %33
 | |
|   %35 = mul i64 %23, 400000
 | |
|   %36 = add i64 %35, 1600000
 | |
|   %37 = getelementptr i64, i64* %3, i64 %36
 | |
|   %38 = mul i64 %23, 400000
 | |
|   %39 = add i64 %38, 2000000
 | |
|   %40 = getelementptr i64, i64* %3, i64 %39
 | |
|   %41 = mul i64 %23, 400000
 | |
|   %42 = add i64 %41, 2400000
 | |
|   %43 = getelementptr i64, i64* %3, i64 %42
 | |
|   %44 = mul i64 %23, 400000
 | |
|   %45 = add i64 %44, 2800000
 | |
|   %46 = getelementptr i64, i64* %3, i64 %45
 | |
|   %47 = mul i64 %23, 400000
 | |
|   %48 = add i64 %47, 3200000
 | |
|   %49 = getelementptr i64, i64* %3, i64 %48
 | |
|   %50 = mul i64 %23, 400000
 | |
|   %51 = add i64 %50, 3600000
 | |
|   %52 = getelementptr i64, i64* %3, i64 %51
 | |
|   %53 = mul i64 %23, 400000
 | |
|   %54 = add i64 %53, 4000000
 | |
|   %55 = getelementptr i64, i64* %3, i64 %54
 | |
|   %56 = mul i64 %23, 400000
 | |
|   %57 = add i64 %56, 4400000
 | |
|   %58 = getelementptr i64, i64* %3, i64 %57
 | |
|   %59 = getelementptr inbounds i64, i64* %25, i64 400000
 | |
|   %60 = getelementptr inbounds i64, i64* %28, i64 400000
 | |
|   %61 = getelementptr inbounds i64, i64* %31, i64 400000
 | |
|   %62 = getelementptr inbounds i64, i64* %34, i64 400000
 | |
|   %63 = getelementptr inbounds i64, i64* %37, i64 400000
 | |
|   %64 = getelementptr inbounds i64, i64* %40, i64 400000
 | |
|   %65 = getelementptr inbounds i64, i64* %43, i64 400000
 | |
|   %66 = getelementptr inbounds i64, i64* %46, i64 400000
 | |
|   %67 = getelementptr inbounds i64, i64* %49, i64 400000
 | |
|   %68 = getelementptr inbounds i64, i64* %52, i64 400000
 | |
|   %69 = getelementptr inbounds i64, i64* %55, i64 400000
 | |
|   %70 = getelementptr inbounds i64, i64* %58, i64 400000
 | |
|   store i64 %0, i64* %59, align 8
 | |
|   store i64 %0, i64* %60, align 8
 | |
|   store i64 %0, i64* %61, align 8
 | |
|   store i64 %0, i64* %62, align 8
 | |
|   store i64 %0, i64* %63, align 8
 | |
|   store i64 %0, i64* %64, align 8
 | |
|   store i64 %0, i64* %65, align 8
 | |
|   store i64 %0, i64* %66, align 8
 | |
|   store i64 %0, i64* %67, align 8
 | |
|   store i64 %0, i64* %68, align 8
 | |
|   store i64 %0, i64* %69, align 8
 | |
|   store i64 %0, i64* %70, align 8
 | |
|   %71 = getelementptr inbounds i64, i64* %25, i64 700000
 | |
|   %72 = getelementptr inbounds i64, i64* %28, i64 700000
 | |
|   %73 = getelementptr inbounds i64, i64* %31, i64 700000
 | |
|   %74 = getelementptr inbounds i64, i64* %34, i64 700000
 | |
|   %75 = getelementptr inbounds i64, i64* %37, i64 700000
 | |
|   %76 = getelementptr inbounds i64, i64* %40, i64 700000
 | |
|   %77 = getelementptr inbounds i64, i64* %43, i64 700000
 | |
|   %78 = getelementptr inbounds i64, i64* %46, i64 700000
 | |
|   %79 = getelementptr inbounds i64, i64* %49, i64 700000
 | |
|   %80 = getelementptr inbounds i64, i64* %52, i64 700000
 | |
|   %81 = getelementptr inbounds i64, i64* %55, i64 700000
 | |
|   %82 = getelementptr inbounds i64, i64* %58, i64 700000
 | |
|   store i64 %0, i64* %71, align 8
 | |
|   store i64 %0, i64* %72, align 8
 | |
|   store i64 %0, i64* %73, align 8
 | |
|   store i64 %0, i64* %74, align 8
 | |
|   store i64 %0, i64* %75, align 8
 | |
|   store i64 %0, i64* %76, align 8
 | |
|   store i64 %0, i64* %77, align 8
 | |
|   store i64 %0, i64* %78, align 8
 | |
|   store i64 %0, i64* %79, align 8
 | |
|   store i64 %0, i64* %80, align 8
 | |
|   store i64 %0, i64* %81, align 8
 | |
|   store i64 %0, i64* %82, align 8
 | |
|   %83 = getelementptr inbounds i64, i64* %25, i64 600000
 | |
|   %84 = getelementptr inbounds i64, i64* %28, i64 600000
 | |
|   %85 = getelementptr inbounds i64, i64* %31, i64 600000
 | |
|   %86 = getelementptr inbounds i64, i64* %34, i64 600000
 | |
|   %87 = getelementptr inbounds i64, i64* %37, i64 600000
 | |
|   %88 = getelementptr inbounds i64, i64* %40, i64 600000
 | |
|   %89 = getelementptr inbounds i64, i64* %43, i64 600000
 | |
|   %90 = getelementptr inbounds i64, i64* %46, i64 600000
 | |
|   %91 = getelementptr inbounds i64, i64* %49, i64 600000
 | |
|   %92 = getelementptr inbounds i64, i64* %52, i64 600000
 | |
|   %93 = getelementptr inbounds i64, i64* %55, i64 600000
 | |
|   %94 = getelementptr inbounds i64, i64* %58, i64 600000
 | |
|   store i64 %0, i64* %83, align 8
 | |
|   store i64 %0, i64* %84, align 8
 | |
|   store i64 %0, i64* %85, align 8
 | |
|   store i64 %0, i64* %86, align 8
 | |
|   store i64 %0, i64* %87, align 8
 | |
|   store i64 %0, i64* %88, align 8
 | |
|   store i64 %0, i64* %89, align 8
 | |
|   store i64 %0, i64* %90, align 8
 | |
|   store i64 %0, i64* %91, align 8
 | |
|   store i64 %0, i64* %92, align 8
 | |
|   store i64 %0, i64* %93, align 8
 | |
|   store i64 %0, i64* %94, align 8
 | |
|   %95 = getelementptr inbounds i64, i64* %25, i64 500000
 | |
|   %96 = getelementptr inbounds i64, i64* %28, i64 500000
 | |
|   %97 = getelementptr inbounds i64, i64* %31, i64 500000
 | |
|   %98 = getelementptr inbounds i64, i64* %34, i64 500000
 | |
|   %99 = getelementptr inbounds i64, i64* %37, i64 500000
 | |
|   %100 = getelementptr inbounds i64, i64* %40, i64 500000
 | |
|   %101 = getelementptr inbounds i64, i64* %43, i64 500000
 | |
|   %102 = getelementptr inbounds i64, i64* %46, i64 500000
 | |
|   %103 = getelementptr inbounds i64, i64* %49, i64 500000
 | |
|   %104 = getelementptr inbounds i64, i64* %52, i64 500000
 | |
|   %105 = getelementptr inbounds i64, i64* %55, i64 500000
 | |
|   %106 = getelementptr inbounds i64, i64* %58, i64 500000
 | |
|   store i64 %0, i64* %95, align 8
 | |
|   store i64 %0, i64* %96, align 8
 | |
|   store i64 %0, i64* %97, align 8
 | |
|   store i64 %0, i64* %98, align 8
 | |
|   store i64 %0, i64* %99, align 8
 | |
|   store i64 %0, i64* %100, align 8
 | |
|   store i64 %0, i64* %101, align 8
 | |
|   store i64 %0, i64* %102, align 8
 | |
|   store i64 %0, i64* %103, align 8
 | |
|   store i64 %0, i64* %104, align 8
 | |
|   store i64 %0, i64* %105, align 8
 | |
|   store i64 %0, i64* %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, i64* %4, align 8
 | |
|   store i64 %0, i64* %5, align 8
 | |
|   store i64 %0, i64* %6, align 8
 | |
|   store i64 %0, i64* %7, align 8
 | |
|   store i64 %0, i64* %8, align 8
 | |
|   store i64 %0, i64* %9, align 8
 | |
|   store i64 %0, i64* %10, align 8
 | |
|   store i64 %0, i64* %11, align 8
 | |
|   store i64 %0, i64* %12, align 8
 | |
|   store i64 %0, i64* %13, align 8
 | |
|   store i64 %0, i64* %14, align 8
 | |
|   store i64 %0, i64* %15, align 8
 | |
|   store i64 %0, i64* %16, align 8
 | |
|   store i64 %0, i64* %17, align 8
 | |
|   store i64 %0, i64* %18, align 8
 | |
|   store i64 %0, i64* %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
 | |
| }
 |