151ae4624SAlex Bradbury; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*3787fbf0SAlex Bradbury; RUN: llc -mtriple=riscv32 -global-merge-on-external=false \ 3*3787fbf0SAlex Bradbury; RUN: -verify-machineinstrs < %s | FileCheck %s 4*3787fbf0SAlex Bradbury; RUN: llc -mtriple=riscv64 -global-merge-on-external=false \ 5*3787fbf0SAlex Bradbury; RUN: -verify-machineinstrs < %s | FileCheck %s 6*3787fbf0SAlex Bradbury; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \ 7ae4fc805SAlex Bradbury; RUN: | FileCheck -check-prefix=CHECK-WEXTERN %s 8*3787fbf0SAlex Bradbury; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \ 9ae4fc805SAlex Bradbury; RUN: | FileCheck -check-prefix=CHECK-WEXTERN %s 1051ae4624SAlex Bradbury 1151ae4624SAlex Bradbury@ig1 = internal global i32 0, align 4 1251ae4624SAlex Bradbury@ig2 = internal global i32 0, align 4 1351ae4624SAlex Bradbury 1451ae4624SAlex Bradbury@eg1 = dso_local global i32 0, align 4 1551ae4624SAlex Bradbury@eg2 = dso_local global i32 0, align 4 1651ae4624SAlex Bradbury 1751ae4624SAlex Bradbury; TODO: It would be better for code size to alter the first store below by 1851ae4624SAlex Bradbury; first fully materialising .L_MergedGlobals in a1 and then storing to it with 1951ae4624SAlex Bradbury; a 0 offset. 2051ae4624SAlex Bradbury 2151ae4624SAlex Bradburydefine void @f1(i32 %a) nounwind { 2251ae4624SAlex Bradbury; CHECK-LABEL: f1: 2351ae4624SAlex Bradbury; CHECK: # %bb.0: 249122c523SPengcheng Wang; CHECK-NEXT: lui a1, %hi(eg1) 259122c523SPengcheng Wang; CHECK-NEXT: sw a0, %lo(eg1)(a1) 2651ae4624SAlex Bradbury; CHECK-NEXT: lui a1, %hi(.L_MergedGlobals) 2751ae4624SAlex Bradbury; CHECK-NEXT: sw a0, %lo(.L_MergedGlobals)(a1) 2851ae4624SAlex Bradbury; CHECK-NEXT: addi a1, a1, %lo(.L_MergedGlobals) 2951ae4624SAlex Bradbury; CHECK-NEXT: sw a0, 4(a1) 30ae4fc805SAlex Bradbury; CHECK-NEXT: lui a1, %hi(eg2) 31ae4fc805SAlex Bradbury; CHECK-NEXT: sw a0, %lo(eg2)(a1) 3251ae4624SAlex Bradbury; CHECK-NEXT: ret 33ae4fc805SAlex Bradbury; 34ae4fc805SAlex Bradbury; CHECK-WEXTERN-LABEL: f1: 35ae4fc805SAlex Bradbury; CHECK-WEXTERN: # %bb.0: 36ae4fc805SAlex Bradbury; CHECK-WEXTERN-NEXT: lui a1, %hi(.L_MergedGlobals) 37ae4fc805SAlex Bradbury; CHECK-WEXTERN-NEXT: sw a0, %lo(.L_MergedGlobals)(a1) 38ae4fc805SAlex Bradbury; CHECK-WEXTERN-NEXT: addi a1, a1, %lo(.L_MergedGlobals) 39ae4fc805SAlex Bradbury; CHECK-WEXTERN-NEXT: sw a0, 4(a1) 40ae4fc805SAlex Bradbury; CHECK-WEXTERN-NEXT: sw a0, 8(a1) 41ae4fc805SAlex Bradbury; CHECK-WEXTERN-NEXT: sw a0, 12(a1) 42ae4fc805SAlex Bradbury; CHECK-WEXTERN-NEXT: ret 4351ae4624SAlex Bradbury store i32 %a, ptr @ig1, align 4 4451ae4624SAlex Bradbury store i32 %a, ptr @ig2, align 4 4551ae4624SAlex Bradbury store i32 %a, ptr @eg1, align 4 4651ae4624SAlex Bradbury store i32 %a, ptr @eg2, align 4 4751ae4624SAlex Bradbury ret void 4851ae4624SAlex Bradbury} 49