brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 76d5441 Raw
107 lines · plain
1; RUN: llc -mtriple=mipsel-- -disable-mips-delay-filler \2; RUN:     -relocation-model=pic < %s | FileCheck %s -check-prefix=PIC323; RUN: llc -mtriple=mips64el-- -disable-mips-delay-filler \4; RUN:     -relocation-model=pic < %s | FileCheck %s -check-prefix=PIC645 6; RUN: llc -mtriple=mipsel-- -mattr=+micromips -disable-mips-delay-filler \7; RUN:     -relocation-model=pic < %s | FileCheck %s -check-prefix=MM8 9@t1 = dso_preemptable thread_local global i32 0, align 410 11define dso_preemptable i32 @f1() nounwind {12entry:13  %tmp = load i32, ptr @t1, align 414  ret i32 %tmp15 16; PIC32-LABEL:       f1:17; PIC32-DAG:   addu    $[[R0:[a-z0-9]+]], $2, $2518; PIC32-DAG:   addiu   $4, $[[R0]], %tlsgd(t1)19; PIC32-DAG:   lw      $25, %call16(__tls_get_addr)($[[R0]])20; PIC32-DAG:   jalr    $2521; PIC32-DAG:   lw      $2, 0($2)22 23; PIC64-LABEL:       f1:24; PIC64-DAG:   daddiu  $[[R0:[a-z0-9]+]], $1, %lo(%neg(%gp_rel(f1)))25; PIC64-DAG:   daddiu  $4, $[[R0]], %tlsgd(t1)26; PIC64-DAG:   ld      $25, %call16(__tls_get_addr)($[[R0]])27; PIC64-DAG:   jalr    $2528; PIC64-DAG:   lw      $2, 0($2)29 30; MM-LABEL:       f1:31; MM-DAG:   addu    $gp, $2, $2532; MM-DAG:   addiu   $4, $gp, %tlsgd(t1)33; MM-DAG:   lw      $25, %call16(__tls_get_addr)($gp)34; MM-DAG:   jalr    $2535; MM-DAG:   lw16    $2, 0($2)36}37 38@t2 = external thread_local global i3239 40define dso_preemptable i32 @f2() nounwind {41entry:42  %tmp = load i32, ptr @t2, align 443  ret i32 %tmp44 45; PIC32-LABEL:       f2:46; PIC32-DAG:   addu    $[[R0:[a-z0-9]+]], $2, $2547; PIC32-DAG:   addiu   $4, $[[R0]], %tlsgd(t2)48; PIC32-DAG:   lw      $25, %call16(__tls_get_addr)($[[R0]])49; PIC32-DAG:   jalr    $2550; PIC32-DAG:   lw      $2, 0($2)51 52; PIC64-LABEL:       f2:53; PIC64-DAG:   daddiu  $[[R0:[a-z0-9]+]], $1, %lo(%neg(%gp_rel(f2)))54; PIC64-DAG:   daddiu  $4, $[[R0]], %tlsgd(t2)55; PIC64-DAG:   ld      $25, %call16(__tls_get_addr)($[[R0]])56; PIC64-DAG:   jalr    $2557; PIC64-DAG:   lw      $2, 0($2)58 59; MM-LABEL:       f2:60; MM-DAG:   addu    $[[R0:[a-z0-9]+]], $2, $2561; MM-DAG:   lw      $25, %call16(__tls_get_addr)($[[R0]])62; MM-DAG:   addiu   $4, $[[R0]], %tlsgd(t2)63; MM-DAG:   jalr    $2564; MM-DAG:   lw16    $2, 0($2)65}66 67@f3.i = internal thread_local unnamed_addr global i32 1, align 468 69define dso_preemptable i32 @f3() nounwind {70entry:71; PIC32-LABEL:      f3:72; PIC32:   addu    $[[R0:[a-z0-9]+]], $2, $2573; PIC32:   addiu   $4, $[[R0]], %tlsldm(f3.i)74; PIC32:   lw      $25, %call16(__tls_get_addr)($[[R0]])75; PIC32:   jalr    $2576; PIC32:   lui     $[[R0:[0-9]+]], %dtprel_hi(f3.i)77; PIC32:   addu    $[[R1:[0-9]+]], $[[R0]], $278; PIC32:   lw      $[[R3:[0-9]+]], %dtprel_lo(f3.i)($[[R1]])79; PIC32:   addiu   $[[R3]], $[[R3]], 180; PIC32:   sw      $[[R3]], %dtprel_lo(f3.i)($[[R1]])81 82; PIC64-LABEL:      f3:83; PIC64:   lui     $[[R0:[a-z0-9]+]], %hi(%neg(%gp_rel(f3)))84; PIC64:   daddu   $[[R0]], $[[R0]], $2585; PIC64:   daddiu  $[[R1:[a-z0-9]+]], $[[R0]], %lo(%neg(%gp_rel(f3)))86; PIC64:   daddiu  $4, $[[R1]], %tlsldm(f3.i)87; PIC64:   ld      $25, %call16(__tls_get_addr)($[[R1]])88; PIC64:   jalr    $2589; PIC64:   lui     $[[R0:[0-9]+]], %dtprel_hi(f3.i)90; PIC64:   daddu   $[[R1:[0-9]+]], $[[R0]], $291; PIC64:   lw      $[[R2:[0-9]+]], %dtprel_lo(f3.i)($[[R1]])92; PIC64:   addiu   $[[R2]], $[[R2]], 193; PIC64:   sw      $[[R2]], %dtprel_lo(f3.i)($[[R1]])94 95; MM-LABEL:       f3:96; MM:   addiu   $4, ${{[a-z0-9]+}}, %tlsldm(f3.i)97; MM:   jalr    $2598; MM:   lui     $[[R0:[0-9]+]], %dtprel_hi(f3.i)99; MM:   addu16  $[[R1:[0-9]+]], $[[R0]], $2100; MM:   lw      ${{[0-9]+}}, %dtprel_lo(f3.i)($[[R1]])101 102  %0 = load i32, ptr @f3.i, align 4103  %inc = add nsw i32 %0, 1104  store i32 %inc, ptr @f3.i, align 4105  ret i32 %inc106}107