Home | History | Annotate | Download | only in Mips
      1 ; RUN: llc -march=mipsel < %s | FileCheck %s -check-prefix=32
      2 ; RUN: llc -march=mips64el -mcpu=mips4 < %s | FileCheck %s -check-prefix=64
      3 ; RUN: llc -march=mips64el -mcpu=mips64 < %s | FileCheck %s -check-prefix=64
      4 
      5 @gint_ = external global i32
      6 @gLL_ = external global i64
      7 
      8 ; 32-LABEL: store_int_float_:
      9 ; 32: trunc.w.s $f[[R0:[0-9]+]], $f{{[0-9]+}}
     10 ; 32: swc1 $f[[R0]],
     11 
     12 define void @store_int_float_(float %a) {
     13 entry:
     14   %conv = fptosi float %a to i32
     15   store i32 %conv, i32* @gint_, align 4
     16   ret void
     17 }
     18 
     19 ; 32-LABEL: store_int_double_:
     20 ; 32: trunc.w.d $f[[R0:[0-9]+]], $f{{[0-9]+}}
     21 ; 32: swc1 $f[[R0]],
     22 ; 64-LABEL: store_int_double_:
     23 ; 64: trunc.w.d $f[[R0:[0-9]+]], $f{{[0-9]+}}
     24 ; 64: swc1 $f[[R0]],
     25 
     26 define void @store_int_double_(double %a) {
     27 entry:
     28   %conv = fptosi double %a to i32
     29   store i32 %conv, i32* @gint_, align 4
     30   ret void
     31 }
     32 
     33 ; 64-LABEL: store_LL_float_:
     34 ; 64: trunc.l.s $f[[R0:[0-9]+]], $f{{[0-9]+}}
     35 ; 64: sdc1 $f[[R0]],
     36 
     37 define void @store_LL_float_(float %a) {
     38 entry:
     39   %conv = fptosi float %a to i64
     40   store i64 %conv, i64* @gLL_, align 8
     41   ret void
     42 }
     43 
     44 ; 64-LABEL: store_LL_double_:
     45 ; 64: trunc.l.d $f[[R0:[0-9]+]], $f{{[0-9]+}}
     46 ; 64: sdc1 $f[[R0]],
     47 
     48 define void @store_LL_double_(double %a) {
     49 entry:
     50   %conv = fptosi double %a to i64
     51   store i64 %conv, i64* @gLL_, align 8
     52   ret void
     53 }
     54