brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · fb35864 Raw
56 lines · plain
1; RUN: llc < %s -mtriple=mipsel -mcpu=mips32 -O0 -relocation-model=pic \2; RUN:      -fast-isel-abort=3 | FileCheck %s3; RUN: llc < %s -mtriple=mipsel -mcpu=mips32r2 -O0 -relocation-model=pic \4; RUN:      -fast-isel-abort=3 | FileCheck %s5 6@sj = global i32 200000, align 47@sk = global i32 -47, align 48@uj = global i32 200000, align 49@uk = global i32 43, align 410@si = common global i32 0, align 411@ui = common global i32 0, align 412 13define void @divs() {14  ; CHECK-LABEL:  divs:15 16  ; CHECK:        lui     $[[GOT1:[0-9]+]], %hi(_gp_disp)17  ; CHECK:        addiu   $[[GOT2:[0-9]+]], $[[GOT1]], %lo(_gp_disp)18  ; CHECK:        addu    $[[GOT:[0-9]+]], $[[GOT2:[0-9]+]], $2519  ; CHECK-DAG:    lw      $[[I_ADDR:[0-9]+]], %got(si)($[[GOT]])20  ; CHECK-DAG:    lw      $[[K_ADDR:[0-9]+]], %got(sk)($[[GOT]])21  ; CHECK-DAG:    lw      $[[J_ADDR:[0-9]+]], %got(sj)($[[GOT]])22  ; CHECK-DAG:    lw      $[[J:[0-9]+]], 0($[[J_ADDR]])23  ; CHECK-DAG:    lw      $[[K:[0-9]+]], 0($[[K_ADDR]])24  ; CHECK-DAG:    div     $zero, $[[J]], $[[K]]25  ; CHECK-DAG:    teq     $[[K]], $zero, 726  ; CHECK-DAG:    mflo    $[[RESULT:[0-9]+]]27  ; CHECK:        sw      $[[RESULT]], 0($[[I_ADDR]])28  %1 = load i32, ptr @sj, align 429  %2 = load i32, ptr @sk, align 430  %div = sdiv i32 %1, %231  store i32 %div, ptr @si, align 432  ret void33}34 35define void @divu() {36  ; CHECK-LABEL:  divu:37 38  ; CHECK:            lui     $[[GOT1:[0-9]+]], %hi(_gp_disp)39  ; CHECK:            addiu   $[[GOT2:[0-9]+]], $[[GOT1]], %lo(_gp_disp)40  ; CHECK:            addu    $[[GOT:[0-9]+]], $[[GOT2:[0-9]+]], $2541  ; CHECK-DAG:        lw      $[[I_ADDR:[0-9]+]], %got(ui)($[[GOT]])42  ; CHECK-DAG:        lw      $[[K_ADDR:[0-9]+]], %got(uk)($[[GOT]])43  ; CHECK-DAG:        lw      $[[J_ADDR:[0-9]+]], %got(uj)($[[GOT]])44  ; CHECK-DAG:        lw      $[[J:[0-9]+]], 0($[[J_ADDR]])45  ; CHECK-DAG:        lw      $[[K:[0-9]+]], 0($[[K_ADDR]])46  ; CHECK-DAG:        divu    $zero, $[[J]], $[[K]]47  ; CHECK-DAG:        teq     $[[K]], $zero, 748  ; CHECK-DAG:        mflo    $[[RESULT:[0-9]+]]49  ; CHECK:            sw      $[[RESULT]], 0($[[I_ADDR]])50  %1 = load i32, ptr @uj, align 451  %2 = load i32, ptr @uk, align 452  %div = udiv i32 %1, %253  store i32 %div, ptr @ui, align 454  ret void55}56