| ; RUN: llc -march=mips64el -mcpu=mips64r2 -O3 < %s |\ | |
| ; RUN: FileCheck %s -check-prefix=HARD | |
| ; RUN: llc -march=mips64el -mcpu=mips64r2 -mattr=+soft-float < %s |\ | |
| ; RUN: FileCheck %s -check-prefix=SOFT | |
| ; Check that %add is not passed in an integer register. | |
| ; | |
| ; HARD-LABEL: callfloor: | |
| ; HARD-NOT: dmfc1 $4 | |
| define double @callfloor(double %d) nounwind readnone { | |
| entry: | |
| %add = fadd double %d, 1.000000e+00 | |
| %call = tail call double @floor(double %add) nounwind readnone | |
| ret double %call | |
| } | |
| declare double @floor(double) nounwind readnone | |
| ; Check call16. | |
| ; | |
| ; SOFT-LABEL: f64add: | |
| ; SOFT: jal __adddf3 | |
| define double @f64add(double %a, double %b) { | |
| entry: | |
| %add = fadd double %a, %b | |
| ret double %add | |
| } |