blob: 19ef04f040d892260f8cf5ecd38c5b62f397619e [file] [log] [blame]
Daniel Sanders0d972702016-06-24 12:23:17 +00001; 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 Hatanaka9a1fb6b2013-08-20 23:47:25 +00007
Akira Hatanaka27916972011-04-15 19:52:08 +00008@a = external global i32
9
Daniel Sanders24e08fd2014-07-14 12:41:31 +000010; ALL-LABEL: f:
11
12; NO-MFHC1: mtc1
13; NO-MFHC1: mtc1
14
15; HAS-MFHC1-DAG: mtc1
16; HAS-MFHC1-DAG: mthc1
Akira Hatanaka9a1fb6b2013-08-20 23:47:25 +000017
Akira Hatanaka27916972011-04-15 19:52:08 +000018define double @f(i32 %a1, double %d) nounwind {
19entry:
Akira Hatanaka27916972011-04-15 19:52:08 +000020 store i32 %a1, i32* @a, align 4
21 %add = fadd double %d, 2.000000e+00
22 ret double %add
23}
24
Daniel Sanders24e08fd2014-07-14 12:41:31 +000025; ALL-LABEL: f3:
26
27; NO-MFHC1: mfc1
28; NO-MFHC1: mfc1
29
30; HAS-MFHC1-DAG: mfc1
31; HAS-MFHC1-DAG: mfhc1
Akira Hatanaka9a1fb6b2013-08-20 23:47:25 +000032
Akira Hatanaka27916972011-04-15 19:52:08 +000033define void @f3(double %d, i32 %a1) nounwind {
34entry:
Akira Hatanaka27916972011-04-15 19:52:08 +000035 tail call void @f2(i32 %a1, double %d) nounwind
36 ret void
37}
38
39declare void @f2(i32, double)
40