brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · c2810fc Raw
49 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -global-merge-on-external=false \3; RUN:     -verify-machineinstrs < %s | FileCheck %s4; RUN: llc -mtriple=riscv64 -global-merge-on-external=false \5; RUN:     -verify-machineinstrs < %s | FileCheck %s6; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \7; RUN:   | FileCheck -check-prefix=CHECK-WEXTERN %s8; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \9; RUN:   | FileCheck -check-prefix=CHECK-WEXTERN %s10 11@ig1 = internal global i32 0, align 412@ig2 = internal global i32 0, align 413 14@eg1 = dso_local global i32 0, align 415@eg2 = dso_local global i32 0, align 416 17; TODO: It would be better for code size to alter the first store below by18; first fully materialising .L_MergedGlobals in a1 and then storing to it with19; a 0 offset.20 21define void @f1(i32 %a) nounwind {22; CHECK-LABEL: f1:23; CHECK:       # %bb.0:24; CHECK-NEXT:    lui a1, %hi(.L_MergedGlobals)25; CHECK-NEXT:    addi a1, a1, %lo(.L_MergedGlobals)26; CHECK-NEXT:    sw a0, 0(a1)27; CHECK-NEXT:    sw a0, 4(a1)28; CHECK-NEXT:    lui a1, %hi(eg1)29; CHECK-NEXT:    sw a0, %lo(eg1)(a1)30; CHECK-NEXT:    lui a1, %hi(eg2)31; CHECK-NEXT:    sw a0, %lo(eg2)(a1)32; CHECK-NEXT:    ret33;34; CHECK-WEXTERN-LABEL: f1:35; CHECK-WEXTERN:       # %bb.0:36; CHECK-WEXTERN-NEXT:    lui a1, %hi(.L_MergedGlobals)37; CHECK-WEXTERN-NEXT:    addi a1, a1, %lo(.L_MergedGlobals)38; CHECK-WEXTERN-NEXT:    sw a0, 0(a1)39; CHECK-WEXTERN-NEXT:    sw a0, 4(a1)40; CHECK-WEXTERN-NEXT:    sw a0, 8(a1)41; CHECK-WEXTERN-NEXT:    sw a0, 12(a1)42; CHECK-WEXTERN-NEXT:    ret43  store i32 %a, ptr @ig1, align 444  store i32 %a, ptr @ig2, align 445  store i32 %a, ptr @eg1, align 446  store i32 %a, ptr @eg2, align 447  ret void48}49