brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 8f2b8c5 Raw
65 lines · plain
1; RUN: llc -mtriple=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \2; RUN:     < %s | FileCheck %s3; RUN: llc -mtriple=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \4; RUN:     < %s | FileCheck %s5 6@x = common global [128000 x float] zeroinitializer, align 47@y = global ptr @x, align 48@result = common global float 0.000000e+00, align 49@.str = private unnamed_addr constant [5 x i8] c"%f \0A\00", align 110 11; Function Attrs: nounwind12define void @foo() {13entry:14; CHECK-LABEL:   .ent  foo15  %0 = load ptr, ptr @y, align 416  %arrayidx = getelementptr inbounds float, ptr %0, i32 6400017  store float 5.500000e+00, ptr %arrayidx, align 418; CHECK:        lw      $[[REG_Y_GOT:[0-9]+]], %got(y)(${{[0-9]+}})19; CHECK:        lw      $[[REG_Y:[0-9]+]], 0($[[REG_Y_GOT]])20; CHECK:        lui     $[[REG_FPCONST_INT:[0-9]+]], 1656021; CHECK:        mtc1    $[[REG_FPCONST_INT]], $f[[REG_FPCONST:[0-9]+]]22; CHECK:        lui     $[[REG_IDX_UPPER:[0-9]+]], 323; CHECK:        ori     $[[REG_IDX:[0-9]+]], $[[REG_IDX_UPPER]], 5939224; CHECK:        addu    $[[REG_Y_IDX:[0-9]+]], $[[REG_IDX]], $[[REG_Y]]25; CHECK:        swc1    $f[[REG_FPCONST]], 0($[[REG_Y_IDX]])26  ret void27; CHECK-LABEL:   .end  foo28}29 30; Function Attrs: nounwind31define void @goo() {32entry:33; CHECK-LABEL:   .ent  goo34  %0 = load ptr, ptr @y, align 435  %arrayidx = getelementptr inbounds float, ptr %0, i32 6400036  %1 = load float, ptr %arrayidx, align 437  store float %1, ptr @result, align 438; CHECK-DAG:    lw      $[[REG_RESULT:[0-9]+]], %got(result)(${{[0-9]+}})39; CHECK-DAG:    lw      $[[REG_Y_GOT:[0-9]+]], %got(y)(${{[0-9]+}})40; CHECK-DAG:    lw      $[[REG_Y:[0-9]+]], 0($[[REG_Y_GOT]])41; CHECK-DAG:    lui     $[[REG_IDX_UPPER:[0-9]+]], 342; CHECK-DAG:    ori     $[[REG_IDX:[0-9]+]], $[[REG_IDX_UPPER]], 5939243; CHECK-DAG:    addu    $[[REG_Y_IDX:[0-9]+]], $[[REG_IDX]], $[[REG_Y]]44; CHECK-DAG:    lwc1    $f[[Y_IDX:[0-9]+]], 0($[[REG_Y_IDX]])45; CHECK-DAG:    swc1    $f[[Y_IDX]], 0($[[REG_RESULT]])46; CHECK-LABEL:   .end  goo47  ret void48}49 50; 51; Original C code for test.52;53;float x[128000];54;ptr y = x;55;float result;56 57 58;void foo() {59;  y[64000] = 5.5;60;}61 62;void goo() {63;  result = y[64000];64;}65