1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel < %s | FileCheck %s -check-prefixes=NO-MFHC1,ALL 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips < %s | FileCheck %s -check-prefixes=NO-MFHC1,ALL 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32r2 < %s | FileCheck %s -check-prefixes=HAS-MFHC1,ALL 4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mcpu=mips32r2 < %s | FileCheck %s -check-prefixes=HAS-MFHC1,ALL 5*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=+fp64 < %s | FileCheck %s -check-prefixes=HAS-MFHC1,ALL 6*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mcpu=mips32r2 -mattr=+fp64 < %s | FileCheck %s -check-prefixes=HAS-MFHC1,ALL 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker@a = external global i32 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: f: 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker; NO-MFHC1: mtc1 13*9880d681SAndroid Build Coastguard Worker; NO-MFHC1: mtc1 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mtc1 16*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mthc1 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerdefine double @f(i32 %a1, double %d) nounwind { 19*9880d681SAndroid Build Coastguard Workerentry: 20*9880d681SAndroid Build Coastguard Worker store i32 %a1, i32* @a, align 4 21*9880d681SAndroid Build Coastguard Worker %add = fadd double %d, 2.000000e+00 22*9880d681SAndroid Build Coastguard Worker ret double %add 23*9880d681SAndroid Build Coastguard Worker} 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: f3: 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker; NO-MFHC1: mfc1 28*9880d681SAndroid Build Coastguard Worker; NO-MFHC1: mfc1 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfc1 31*9880d681SAndroid Build Coastguard Worker; HAS-MFHC1-DAG: mfhc1 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workerdefine void @f3(double %d, i32 %a1) nounwind { 34*9880d681SAndroid Build Coastguard Workerentry: 35*9880d681SAndroid Build Coastguard Worker tail call void @f2(i32 %a1, double %d) nounwind 36*9880d681SAndroid Build Coastguard Worker ret void 37*9880d681SAndroid Build Coastguard Worker} 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Workerdeclare void @f2(i32, double) 40*9880d681SAndroid Build Coastguard Worker 41