Daniel Sanders | 0d97270 | 2016-06-24 12:23:17 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=mipsel < %s | FileCheck %s -check-prefixes=NO-MFHC1,ALL |
| 2 | ; RUN: llc -march=mips < %s | FileCheck %s -check-prefixes=NO-MFHC1,ALL |
| 3 | ; RUN: llc -march=mipsel -mcpu=mips32r2 < %s | FileCheck %s -check-prefixes=HAS-MFHC1,ALL |
| 4 | ; RUN: llc -march=mips -mcpu=mips32r2 < %s | FileCheck %s -check-prefixes=HAS-MFHC1,ALL |
| 5 | ; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=+fp64 < %s | FileCheck %s -check-prefixes=HAS-MFHC1,ALL |
| 6 | ; RUN: llc -march=mips -mcpu=mips32r2 -mattr=+fp64 < %s | FileCheck %s -check-prefixes=HAS-MFHC1,ALL |
Akira Hatanaka | 9a1fb6b | 2013-08-20 23:47:25 +0000 | [diff] [blame] | 7 | |
Akira Hatanaka | 2791697 | 2011-04-15 19:52:08 +0000 | [diff] [blame] | 8 | @a = external global i32 |
| 9 | |
Daniel Sanders | 24e08fd | 2014-07-14 12:41:31 +0000 | [diff] [blame] | 10 | ; ALL-LABEL: f: |
| 11 | |
| 12 | ; NO-MFHC1: mtc1 |
| 13 | ; NO-MFHC1: mtc1 |
| 14 | |
| 15 | ; HAS-MFHC1-DAG: mtc1 |
| 16 | ; HAS-MFHC1-DAG: mthc1 |
Akira Hatanaka | 9a1fb6b | 2013-08-20 23:47:25 +0000 | [diff] [blame] | 17 | |
Akira Hatanaka | 2791697 | 2011-04-15 19:52:08 +0000 | [diff] [blame] | 18 | define double @f(i32 %a1, double %d) nounwind { |
| 19 | entry: |
Akira Hatanaka | 2791697 | 2011-04-15 19:52:08 +0000 | [diff] [blame] | 20 | store i32 %a1, i32* @a, align 4 |
| 21 | %add = fadd double %d, 2.000000e+00 |
| 22 | ret double %add |
| 23 | } |
| 24 | |
Daniel Sanders | 24e08fd | 2014-07-14 12:41:31 +0000 | [diff] [blame] | 25 | ; ALL-LABEL: f3: |
| 26 | |
| 27 | ; NO-MFHC1: mfc1 |
| 28 | ; NO-MFHC1: mfc1 |
| 29 | |
| 30 | ; HAS-MFHC1-DAG: mfc1 |
| 31 | ; HAS-MFHC1-DAG: mfhc1 |
Akira Hatanaka | 9a1fb6b | 2013-08-20 23:47:25 +0000 | [diff] [blame] | 32 | |
Akira Hatanaka | 2791697 | 2011-04-15 19:52:08 +0000 | [diff] [blame] | 33 | define void @f3(double %d, i32 %a1) nounwind { |
| 34 | entry: |
Akira Hatanaka | 2791697 | 2011-04-15 19:52:08 +0000 | [diff] [blame] | 35 | tail call void @f2(i32 %a1, double %d) nounwind |
| 36 | ret void |
| 37 | } |
| 38 | |
| 39 | declare void @f2(i32, double) |
| 40 | |