@@ -471,8 +471,7 @@ define dso_local ptr @load_ba_1() nounwind {
471
471
; RV32I-MEDIUM-NEXT: # %bb.1: # %label
472
472
; RV32I-MEDIUM-NEXT: .Lpcrel_hi12:
473
473
; RV32I-MEDIUM-NEXT: auipc a0, %pcrel_hi(.Ltmp0)
474
- ; RV32I-MEDIUM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi12)
475
- ; RV32I-MEDIUM-NEXT: lw a0, 0(a0)
474
+ ; RV32I-MEDIUM-NEXT: lw a0, %pcrel_lo(.Lpcrel_hi12)(a0)
476
475
; RV32I-MEDIUM-NEXT: ret
477
476
;
478
477
; RV64I-LABEL: load_ba_1:
@@ -489,8 +488,7 @@ define dso_local ptr @load_ba_1() nounwind {
489
488
; RV64I-MEDIUM-NEXT: # %bb.1: # %label
490
489
; RV64I-MEDIUM-NEXT: .Lpcrel_hi12:
491
490
; RV64I-MEDIUM-NEXT: auipc a0, %pcrel_hi(.Ltmp0)
492
- ; RV64I-MEDIUM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi12)
493
- ; RV64I-MEDIUM-NEXT: ld a0, 0(a0)
491
+ ; RV64I-MEDIUM-NEXT: ld a0, %pcrel_lo(.Lpcrel_hi12)(a0)
494
492
; RV64I-MEDIUM-NEXT: ret
495
493
entry:
496
494
br label %label
@@ -504,38 +502,34 @@ define dso_local ptr @load_ba_2() nounwind {
504
502
; RV32I: # %bb.0: # %entry
505
503
; RV32I-NEXT: .Ltmp1: # Block address taken
506
504
; RV32I-NEXT: # %bb.1: # %label
507
- ; RV32I-NEXT: lui a0, %hi(.Ltmp1)
508
- ; RV32I-NEXT: addi a0, a0, %lo(.Ltmp1)
509
- ; RV32I-NEXT: lw a0, 8(a0)
505
+ ; RV32I-NEXT: lui a0, %hi(.Ltmp1+8)
506
+ ; RV32I-NEXT: lw a0, %lo(.Ltmp1+8)(a0)
510
507
; RV32I-NEXT: ret
511
508
;
512
509
; RV32I-MEDIUM-LABEL: load_ba_2:
513
510
; RV32I-MEDIUM: # %bb.0: # %entry
514
511
; RV32I-MEDIUM-NEXT: .Ltmp1: # Block address taken
515
512
; RV32I-MEDIUM-NEXT: # %bb.1: # %label
516
513
; RV32I-MEDIUM-NEXT: .Lpcrel_hi13:
517
- ; RV32I-MEDIUM-NEXT: auipc a0, %pcrel_hi(.Ltmp1)
518
- ; RV32I-MEDIUM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi13)
519
- ; RV32I-MEDIUM-NEXT: lw a0, 8(a0)
514
+ ; RV32I-MEDIUM-NEXT: auipc a0, %pcrel_hi(.Ltmp1+8)
515
+ ; RV32I-MEDIUM-NEXT: lw a0, %pcrel_lo(.Lpcrel_hi13)(a0)
520
516
; RV32I-MEDIUM-NEXT: ret
521
517
;
522
518
; RV64I-LABEL: load_ba_2:
523
519
; RV64I: # %bb.0: # %entry
524
520
; RV64I-NEXT: .Ltmp1: # Block address taken
525
521
; RV64I-NEXT: # %bb.1: # %label
526
- ; RV64I-NEXT: lui a0, %hi(.Ltmp1)
527
- ; RV64I-NEXT: addi a0, a0, %lo(.Ltmp1)
528
- ; RV64I-NEXT: ld a0, 8(a0)
522
+ ; RV64I-NEXT: lui a0, %hi(.Ltmp1+8)
523
+ ; RV64I-NEXT: ld a0, %lo(.Ltmp1+8)(a0)
529
524
; RV64I-NEXT: ret
530
525
;
531
526
; RV64I-MEDIUM-LABEL: load_ba_2:
532
527
; RV64I-MEDIUM: # %bb.0: # %entry
533
528
; RV64I-MEDIUM-NEXT: .Ltmp1: # Block address taken
534
529
; RV64I-MEDIUM-NEXT: # %bb.1: # %label
535
530
; RV64I-MEDIUM-NEXT: .Lpcrel_hi13:
536
- ; RV64I-MEDIUM-NEXT: auipc a0, %pcrel_hi(.Ltmp1)
537
- ; RV64I-MEDIUM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi13)
538
- ; RV64I-MEDIUM-NEXT: ld a0, 8(a0)
531
+ ; RV64I-MEDIUM-NEXT: auipc a0, %pcrel_hi(.Ltmp1+8)
532
+ ; RV64I-MEDIUM-NEXT: ld a0, %pcrel_lo(.Lpcrel_hi13)(a0)
539
533
; RV64I-MEDIUM-NEXT: ret
540
534
entry:
541
535
br label %label
0 commit comments