mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
87ee2e6422
PowerPC has its custom scheduler heuristic. It calls parent classes' tryCandidate in override version, but the function returns void, so this way doesn't actually help. This patch duplicates code from base scheduler into PPC machine scheduler class, which does what we wanted. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D94464
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
|
|
}
|