72 lines · plain
1; RUN: llc < %s -mtriple=mips64el -mattr=+soft-float | FileCheck %s2; RUN: llc < %s -mtriple=mips -mattr=+soft-float | FileCheck %s3 4; FIXME: crash5; define signext i32 @testmswh(half %x) {6; entry:7; %0 = tail call i64 @llvm.llrint.i64.f16(half %x)8; %conv = trunc i64 %0 to i329; ret i32 %conv10; }11 12; define i64 @testmsxh(half %x) {13; entry:14; %0 = tail call i64 @llvm.llrint.i64.f16(half %x)15; ret i64 %016; }17 18define signext i32 @testmsws(float %x) {19; CHECK-LABEL: testmsws:20; CHECK: jal llrintf21entry:22 %0 = tail call i64 @llvm.llrint.i64.f32(float %x)23 %conv = trunc i64 %0 to i3224 ret i32 %conv25}26 27define i64 @testmsxs(float %x) {28; CHECK-LABEL: testmsxs:29; CHECK: jal llrintf30entry:31 %0 = tail call i64 @llvm.llrint.i64.f32(float %x)32 ret i64 %033}34 35define signext i32 @testmswd(double %x) {36; CHECK-LABEL: testmswd:37; CHECK: jal llrint38entry:39 %0 = tail call i64 @llvm.llrint.i64.f64(double %x)40 %conv = trunc i64 %0 to i3241 ret i32 %conv42}43 44define i64 @testmsxd(double %x) {45; CHECK-LABEL: testmsxd:46; CHECK: jal llrint47entry:48 %0 = tail call i64 @llvm.llrint.i64.f64(double %x)49 ret i64 %050}51 52define signext i32 @testmswl(fp128 %x) {53; CHECK-LABEL: testmswl:54; CHECK: jal llrintl55entry:56 %0 = tail call i64 @llvm.llrint.i64.f128(fp128 %x)57 %conv = trunc i64 %0 to i3258 ret i32 %conv59}60 61define i64 @testmsll(fp128 %x) {62; CHECK-LABEL: testmsll:63; CHECK: jal llrintl64entry:65 %0 = tail call i64 @llvm.llrint.i64.f128(fp128 %x)66 ret i64 %067}68 69declare i64 @llvm.llrint.i64.f32(float) nounwind readnone70declare i64 @llvm.llrint.i64.f64(double) nounwind readnone71declare i64 @llvm.llrint.i64.f128(fp128) nounwind readnone72