151ae4624SAlex Bradbury; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 29d02264bSAlex Bradbury; RUN: sed 's/ArrSize/100/g' %s | llc -mtriple=riscv32 \ 3*3787fbf0SAlex Bradbury; RUN: -verify-machineinstrs | FileCheck %s 49d02264bSAlex Bradbury; RUN: sed 's/ArrSize/100/g' %s | llc -mtriple=riscv64 \ 5*3787fbf0SAlex Bradbury; RUN: -verify-machineinstrs | FileCheck %s 69d02264bSAlex Bradbury; RUN: sed 's/ArrSize/101/g' %s | llc -mtriple=riscv32 \ 7*3787fbf0SAlex Bradbury; RUN: -verify-machineinstrs | FileCheck %s -check-prefix=CHECK-TOOBIG 89d02264bSAlex Bradbury; RUN: sed 's/ArrSize/101/g' %s | llc -mtriple=riscv64 \ 9*3787fbf0SAlex Bradbury; RUN: -verify-machineinstrs | FileCheck %s -check-prefix=CHECK-TOOBIG 1051ae4624SAlex Bradbury 1151ae4624SAlex Bradbury; This test demonstrates that the MaxOffset is set correctly for RISC-V by 1251ae4624SAlex Bradbury; constructing an input that is at the limit and comparing. 1351ae4624SAlex Bradbury 1451ae4624SAlex Bradbury@ga1 = dso_local global [410 x i32] zeroinitializer, align 4 1551ae4624SAlex Bradbury@ga2 = dso_local global [ArrSize x i32] zeroinitializer, align 4 1651ae4624SAlex Bradbury@gi = dso_local global i32 0, align 4 1751ae4624SAlex Bradbury 1851ae4624SAlex Bradbury; TODO: It would be better for codesize if the final store below was 1951ae4624SAlex Bradbury; `sw a0, 0(a2)`. 2051ae4624SAlex Bradbury 2151ae4624SAlex Bradburydefine void @f1(i32 %a) nounwind { 2251ae4624SAlex Bradbury; CHECK-LABEL: f1: 2351ae4624SAlex Bradbury; CHECK: # %bb.0: 2451ae4624SAlex Bradbury; CHECK-NEXT: lui a1, %hi(.L_MergedGlobals) 2551ae4624SAlex Bradbury; CHECK-NEXT: addi a2, a1, %lo(.L_MergedGlobals) 2651ae4624SAlex Bradbury; CHECK-NEXT: sw a0, 2044(a2) 2751ae4624SAlex Bradbury; CHECK-NEXT: sw a0, 404(a2) 2851ae4624SAlex Bradbury; CHECK-NEXT: sw a0, %lo(.L_MergedGlobals)(a1) 2951ae4624SAlex Bradbury; CHECK-NEXT: ret 3051ae4624SAlex Bradbury; 3151ae4624SAlex Bradbury; CHECK-TOOBIG-LABEL: f1: 3251ae4624SAlex Bradbury; CHECK-TOOBIG: # %bb.0: 3351ae4624SAlex Bradbury; CHECK-TOOBIG-NEXT: lui a1, %hi(ga1+1640) 3451ae4624SAlex Bradbury; CHECK-TOOBIG-NEXT: lui a2, %hi(.L_MergedGlobals) 3551ae4624SAlex Bradbury; CHECK-TOOBIG-NEXT: addi a3, a2, %lo(.L_MergedGlobals) 3651ae4624SAlex Bradbury; CHECK-TOOBIG-NEXT: sw a0, %lo(ga1+1640)(a1) 3751ae4624SAlex Bradbury; CHECK-TOOBIG-NEXT: sw a0, 408(a3) 3851ae4624SAlex Bradbury; CHECK-TOOBIG-NEXT: sw a0, %lo(.L_MergedGlobals)(a2) 3951ae4624SAlex Bradbury; CHECK-TOOBIG-NEXT: ret 4051ae4624SAlex Bradbury %ga1_end = getelementptr inbounds [410 x i32], ptr @ga1, i32 0, i64 410 4151ae4624SAlex Bradbury %ga2_end = getelementptr inbounds [ArrSize x i32], ptr @ga2, i32 0, i64 ArrSize 4251ae4624SAlex Bradbury store i32 %a, ptr %ga1_end, align 4 4351ae4624SAlex Bradbury store i32 %a, ptr %ga2_end, align 4 4451ae4624SAlex Bradbury store i32 %a, ptr @gi, align 4 4551ae4624SAlex Bradbury ret void 4651ae4624SAlex Bradbury} 47