brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · 8151749 Raw
129 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc -mtriple=riscv64 -run-pass=instruction-select -relocation-model=pic \3# RUN:   %s -o - | FileCheck --check-prefix=RV64-PIE %s4# RUN: llc -mtriple=riscv64 -run-pass=instruction-select \5# RUN:   -mattr=+tagged-globals %s -o - | FileCheck  \6# RUN:   --check-prefix=RV64-NOPIE-TAG %s7# RUN: llc -mtriple=riscv64 -run-pass=instruction-select -code-model=small \8# RUN:   %s -o - | FileCheck --check-prefix=RV64-SMALL-NOPIE-NOTAG %s9# RUN: llc -mtriple=riscv64 -run-pass=instruction-select -code-model=medium \10# RUN:   %s -o - | FileCheck --check-prefix=RV64-MED %s11 12--- |13  @x = global i32 0, align 414  define ptr @global_addr() {15  entry:16    ret ptr @x17  }18  @y = extern_weak global i32, align 419  define ptr @extern_weak_global_addr() {20  entry:21    ret ptr @y22  }23  @z = dso_local global i32 0, align 424  define ptr @local_global_addr() {25  entry:26    ret ptr @z27  }28...29---30name:            global_addr31legalized:       true32regBankSelected: true33tracksRegLiveness: true34registers:35  - { id: 0, class: gprb, preferred-register: '' }36body:             |37  bb.1.entry:38    ; RV64-PIE-LABEL: name: global_addr39    ; RV64-PIE: [[PseudoLGA:%[0-9]+]]:gpr = PseudoLGA @x :: (dereferenceable invariant load (p0) from got)40    ; RV64-PIE-NEXT: $x10 = COPY [[PseudoLGA]]41    ; RV64-PIE-NEXT: PseudoRET implicit $x1042    ;43    ; RV64-NOPIE-TAG-LABEL: name: global_addr44    ; RV64-NOPIE-TAG: [[PseudoLGA:%[0-9]+]]:gpr = PseudoLGA @x :: (dereferenceable invariant load (p0) from got)45    ; RV64-NOPIE-TAG-NEXT: $x10 = COPY [[PseudoLGA]]46    ; RV64-NOPIE-TAG-NEXT: PseudoRET implicit $x1047    ;48    ; RV64-SMALL-NOPIE-NOTAG-LABEL: name: global_addr49    ; RV64-SMALL-NOPIE-NOTAG: [[LUI:%[0-9]+]]:gpr = LUI target-flags(riscv-hi) @x50    ; RV64-SMALL-NOPIE-NOTAG-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI [[LUI]], target-flags(riscv-lo) @x51    ; RV64-SMALL-NOPIE-NOTAG-NEXT: $x10 = COPY [[ADDI]]52    ; RV64-SMALL-NOPIE-NOTAG-NEXT: PseudoRET implicit $x1053    ;54    ; RV64-MED-LABEL: name: global_addr55    ; RV64-MED: [[PseudoLLA:%[0-9]+]]:gpr = PseudoLLA @x56    ; RV64-MED-NEXT: $x10 = COPY [[PseudoLLA]]57    ; RV64-MED-NEXT: PseudoRET implicit $x1058    %0:gprb(p0) = G_GLOBAL_VALUE @x59    $x10 = COPY %0(p0)60    PseudoRET implicit $x1061...62---63name:            extern_weak_global_addr64legalized:       true65regBankSelected: true66tracksRegLiveness: true67registers:68  - { id: 0, class: gprb, preferred-register: '' }69body:             |70  bb.1.entry:71    ; RV64-PIE-LABEL: name: extern_weak_global_addr72    ; RV64-PIE: [[PseudoLGA:%[0-9]+]]:gpr = PseudoLGA @y :: (dereferenceable invariant load (p0) from got)73    ; RV64-PIE-NEXT: $x10 = COPY [[PseudoLGA]]74    ; RV64-PIE-NEXT: PseudoRET implicit $x1075    ;76    ; RV64-NOPIE-TAG-LABEL: name: extern_weak_global_addr77    ; RV64-NOPIE-TAG: [[PseudoLGA:%[0-9]+]]:gpr = PseudoLGA @y :: (dereferenceable invariant load (p0) from got)78    ; RV64-NOPIE-TAG-NEXT: $x10 = COPY [[PseudoLGA]]79    ; RV64-NOPIE-TAG-NEXT: PseudoRET implicit $x1080    ;81    ; RV64-SMALL-NOPIE-NOTAG-LABEL: name: extern_weak_global_addr82    ; RV64-SMALL-NOPIE-NOTAG: [[LUI:%[0-9]+]]:gpr = LUI target-flags(riscv-hi) @y83    ; RV64-SMALL-NOPIE-NOTAG-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI [[LUI]], target-flags(riscv-lo) @y84    ; RV64-SMALL-NOPIE-NOTAG-NEXT: $x10 = COPY [[ADDI]]85    ; RV64-SMALL-NOPIE-NOTAG-NEXT: PseudoRET implicit $x1086    ;87    ; RV64-MED-LABEL: name: extern_weak_global_addr88    ; RV64-MED: [[PseudoLGA:%[0-9]+]]:gpr = PseudoLGA @y :: (dereferenceable invariant load (p0) from got)89    ; RV64-MED-NEXT: $x10 = COPY [[PseudoLGA]]90    ; RV64-MED-NEXT: PseudoRET implicit $x1091    %0:gprb(p0) = G_GLOBAL_VALUE @y92    $x10 = COPY %0(p0)93    PseudoRET implicit $x1094...95---96name:            local_global_addr97legalized:       true98regBankSelected: true99tracksRegLiveness: true100registers:101  - { id: 0, class: gprb, preferred-register: '' }102body:             |103  bb.1.entry:104    ; RV64-PIE-LABEL: name: local_global_addr105    ; RV64-PIE: [[PseudoLLA:%[0-9]+]]:gpr = PseudoLLA @z106    ; RV64-PIE-NEXT: $x10 = COPY [[PseudoLLA]]107    ; RV64-PIE-NEXT: PseudoRET implicit $x10108    ;109    ; RV64-NOPIE-TAG-LABEL: name: local_global_addr110    ; RV64-NOPIE-TAG: [[PseudoLGA:%[0-9]+]]:gpr = PseudoLGA @z :: (dereferenceable invariant load (p0) from got)111    ; RV64-NOPIE-TAG-NEXT: $x10 = COPY [[PseudoLGA]]112    ; RV64-NOPIE-TAG-NEXT: PseudoRET implicit $x10113    ;114    ; RV64-SMALL-NOPIE-NOTAG-LABEL: name: local_global_addr115    ; RV64-SMALL-NOPIE-NOTAG: [[LUI:%[0-9]+]]:gpr = LUI target-flags(riscv-hi) @z116    ; RV64-SMALL-NOPIE-NOTAG-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI [[LUI]], target-flags(riscv-lo) @z117    ; RV64-SMALL-NOPIE-NOTAG-NEXT: $x10 = COPY [[ADDI]]118    ; RV64-SMALL-NOPIE-NOTAG-NEXT: PseudoRET implicit $x10119    ;120    ; RV64-MED-LABEL: name: local_global_addr121    ; RV64-MED: [[PseudoLLA:%[0-9]+]]:gpr = PseudoLLA @z122    ; RV64-MED-NEXT: $x10 = COPY [[PseudoLLA]]123    ; RV64-MED-NEXT: PseudoRET implicit $x10124    %0:gprb(p0) = G_GLOBAL_VALUE @z125    $x10 = COPY %0(p0)126    PseudoRET implicit $x10127...128 129