Home | History | Annotate | Download | only in Mips
      1 ; RUN: llc  < %s -march=mips64el -mcpu=mips4 -target-abi n64 | FileCheck %s -check-prefix=CHECK-N64
      2 ; RUN: llc  < %s -march=mips64el -mcpu=mips4 -target-abi n32 | FileCheck %s -check-prefix=CHECK-N32
      3 ; RUN: llc  < %s -march=mips64el -mcpu=mips64 -target-abi n64 | FileCheck %s -check-prefix=CHECK-N64
      4 ; RUN: llc  < %s -march=mips64el -mcpu=mips64 -target-abi n32 | FileCheck %s -check-prefix=CHECK-N32
      5 
      6 @f0 = common global float 0.000000e+00, align 4
      7 @d0 = common global double 0.000000e+00, align 8
      8 @f1 = common global float 0.000000e+00, align 4
      9 @d1 = common global double 0.000000e+00, align 8
     10 
     11 define float @funcfl1() nounwind readonly {
     12 entry:
     13 ; CHECK-N64: funcfl1
     14 ; CHECK-N64: ld $[[R0:[0-9]+]], %got_disp(f0)
     15 ; CHECK-N64: lwc1 $f{{[0-9]+}}, 0($[[R0]]) 
     16 ; CHECK-N32: funcfl1
     17 ; CHECK-N32: lw $[[R0:[0-9]+]], %got_disp(f0)
     18 ; CHECK-N32: lwc1 $f{{[0-9]+}}, 0($[[R0]]) 
     19   %0 = load float, float* @f0, align 4
     20   ret float %0
     21 }
     22 
     23 define double @funcfl2() nounwind readonly {
     24 entry:
     25 ; CHECK-N64: funcfl2
     26 ; CHECK-N64: ld $[[R0:[0-9]+]], %got_disp(d0)
     27 ; CHECK-N64: ldc1 $f{{[0-9]+}}, 0($[[R0]]) 
     28 ; CHECK-N32: funcfl2
     29 ; CHECK-N32: lw $[[R0:[0-9]+]], %got_disp(d0)
     30 ; CHECK-N32: ldc1 $f{{[0-9]+}}, 0($[[R0]]) 
     31   %0 = load double, double* @d0, align 8 
     32   ret double %0
     33 }
     34 
     35 define void @funcfs1() nounwind {
     36 entry:
     37 ; CHECK-N64: funcfs1
     38 ; CHECK-N64: ld $[[R0:[0-9]+]], %got_disp(f0)
     39 ; CHECK-N64: swc1 $f{{[0-9]+}}, 0($[[R0]]) 
     40 ; CHECK-N32: funcfs1
     41 ; CHECK-N32: lw $[[R0:[0-9]+]], %got_disp(f0)
     42 ; CHECK-N32: swc1 $f{{[0-9]+}}, 0($[[R0]]) 
     43   %0 = load float, float* @f1, align 4 
     44   store float %0, float* @f0, align 4 
     45   ret void
     46 }
     47 
     48 define void @funcfs2() nounwind {
     49 entry:
     50 ; CHECK-N64: funcfs2
     51 ; CHECK-N64: ld $[[R0:[0-9]+]], %got_disp(d0)
     52 ; CHECK-N64: sdc1 $f{{[0-9]+}}, 0($[[R0]]) 
     53 ; CHECK-N32: funcfs2
     54 ; CHECK-N32: lw $[[R0:[0-9]+]], %got_disp(d0)
     55 ; CHECK-N32: sdc1 $f{{[0-9]+}}, 0($[[R0]]) 
     56   %0 = load double, double* @d1, align 8 
     57   store double %0, double* @d0, align 8 
     58   ret void
     59 }
     60 
     61