Akira Hatanaka | 252f54f | 2013-05-16 21:17:15 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=mipsel < %s | FileCheck %s -check-prefix=32 |
Daniel Sanders | 1d3ae27 | 2014-04-14 16:00:28 +0000 | [diff] [blame] | 2 | ; RUN: llc -march=mips64el -mcpu=mips4 < %s | FileCheck %s -check-prefix=64 |
Akira Hatanaka | 252f54f | 2013-05-16 21:17:15 +0000 | [diff] [blame] | 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 | |
Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 8 | ; 32-LABEL: store_int_float_: |
Akira Hatanaka | 252f54f | 2013-05-16 21:17:15 +0000 | [diff] [blame] | 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 | |
Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 19 | ; 32-LABEL: store_int_double_: |
Akira Hatanaka | 252f54f | 2013-05-16 21:17:15 +0000 | [diff] [blame] | 20 | ; 32: trunc.w.d $f[[R0:[0-9]+]], $f{{[0-9]+}} |
| 21 | ; 32: swc1 $f[[R0]], |
Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 22 | ; 64-LABEL: store_int_double_: |
Akira Hatanaka | 252f54f | 2013-05-16 21:17:15 +0000 | [diff] [blame] | 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 | |
Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 33 | ; 64-LABEL: store_LL_float_: |
Akira Hatanaka | 252f54f | 2013-05-16 21:17:15 +0000 | [diff] [blame] | 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 | |
Stephen Lin | d24ab20 | 2013-07-14 06:24:09 +0000 | [diff] [blame] | 44 | ; 64-LABEL: store_LL_double_: |
Akira Hatanaka | 252f54f | 2013-05-16 21:17:15 +0000 | [diff] [blame] | 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 | } |