You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
619 lines
25 KiB
619 lines
25 KiB
; 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, 4
|
|
; CHECK-NEXT: std 30, 704(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: std 29, 696(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: ori 6, 5, 6292
|
|
; 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 25, 664(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: ori 5, 5, 6291
|
|
; CHECK-NEXT: std 14, 576(1) # 8-byte Folded Spill
|
|
; 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: std 18, 608(1) # 8-byte Folded Spill
|
|
; 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 31, 712(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: std 2, 568(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: sldi 6, 6, 32
|
|
; CHECK-NEXT: oris 7, 6, 13030
|
|
; CHECK-NEXT: oris 8, 6, 13066
|
|
; CHECK-NEXT: oris 9, 6, 13054
|
|
; CHECK-NEXT: oris 10, 6, 13042
|
|
; CHECK-NEXT: oris 11, 6, 13078
|
|
; CHECK-NEXT: oris 12, 6, 13115
|
|
; CHECK-NEXT: oris 0, 6, 13103
|
|
; CHECK-NEXT: oris 30, 6, 13091
|
|
; CHECK-NEXT: oris 29, 6, 13127
|
|
; CHECK-NEXT: oris 28, 6, 13164
|
|
; CHECK-NEXT: oris 27, 6, 13152
|
|
; CHECK-NEXT: oris 26, 6, 13139
|
|
; CHECK-NEXT: oris 25, 6, 13176
|
|
; CHECK-NEXT: ori 7, 7, 3704
|
|
; CHECK-NEXT: ori 8, 8, 44408
|
|
; CHECK-NEXT: ori 9, 9, 30840
|
|
; CHECK-NEXT: ori 10, 10, 17272
|
|
; CHECK-NEXT: ori 11, 11, 57976
|
|
; CHECK-NEXT: ori 12, 12, 33144
|
|
; CHECK-NEXT: ori 0, 0, 19576
|
|
; CHECK-NEXT: ori 30, 30, 6008
|
|
; CHECK-NEXT: ori 29, 29, 46712
|
|
; CHECK-NEXT: ori 28, 28, 21880
|
|
; CHECK-NEXT: ori 27, 27, 8312
|
|
; CHECK-NEXT: ori 26, 26, 60280
|
|
; CHECK-NEXT: ori 25, 25, 35448
|
|
; CHECK-NEXT: add 7, 4, 7
|
|
; CHECK-NEXT: sldi 5, 5, 32
|
|
; CHECK-NEXT: oris 5, 5, 29347
|
|
; CHECK-NEXT: ori 5, 5, 20088
|
|
; CHECK-NEXT: std 7, 384(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 8
|
|
; CHECK-NEXT: lis 8, 402
|
|
; CHECK-NEXT: std 7, 376(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 9
|
|
; CHECK-NEXT: lis 9, 451
|
|
; CHECK-NEXT: std 7, 368(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 10
|
|
; CHECK-NEXT: lis 10, 500
|
|
; CHECK-NEXT: std 7, 360(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 11
|
|
; CHECK-NEXT: lis 11, 549
|
|
; CHECK-NEXT: std 7, 352(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 12
|
|
; CHECK-NEXT: std 7, 344(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 0
|
|
; CHECK-NEXT: std 7, 336(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 30
|
|
; CHECK-NEXT: std 7, 328(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 29
|
|
; CHECK-NEXT: std 7, 320(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 28
|
|
; CHECK-NEXT: std 7, 312(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 27
|
|
; CHECK-NEXT: std 7, 304(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 26
|
|
; CHECK-NEXT: std 7, 296(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: add 7, 4, 25
|
|
; CHECK-NEXT: std 7, 288(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: oris 7, 6, 13213
|
|
; CHECK-NEXT: ori 7, 7, 10616
|
|
; CHECK-NEXT: add 7, 4, 7
|
|
; CHECK-NEXT: std 7, 280(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: oris 7, 6, 13200
|
|
; CHECK-NEXT: oris 6, 6, 13188
|
|
; CHECK-NEXT: ori 7, 7, 62584
|
|
; CHECK-NEXT: ori 6, 6, 49016
|
|
; CHECK-NEXT: add 7, 4, 7
|
|
; CHECK-NEXT: add 6, 4, 6
|
|
; 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: std 6, 264(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: lis 6, 305
|
|
; CHECK-NEXT: std 7, 272(1) # 8-byte Folded Spill
|
|
; CHECK-NEXT: lis 7, 354
|
|
; 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: addi 4, 4, 1
|
|
; CHECK-NEXT: std 3, 0(12)
|
|
; CHECK-NEXT: ld 12, 376(1) # 8-byte Folded Reload
|
|
; 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
|
|
}
|