1*73643b50SAdhemerval Zanella; RUN: llc < %s -mtriple=powerpc64le | FileCheck %s 2*73643b50SAdhemerval Zanella 3*73643b50SAdhemerval Zanella; CHECK-LABEL: testmsws: 4*73643b50SAdhemerval Zanella; CHECK: bl llroundf 5*73643b50SAdhemerval Zanelladefine signext i32 @testmsws(float %x) { 6*73643b50SAdhemerval Zanellaentry: 7*73643b50SAdhemerval Zanella %0 = tail call i64 @llvm.llround.f32(float %x) 8*73643b50SAdhemerval Zanella %conv = trunc i64 %0 to i32 9*73643b50SAdhemerval Zanella ret i32 %conv 10*73643b50SAdhemerval Zanella} 11*73643b50SAdhemerval Zanella 12*73643b50SAdhemerval Zanella; CHECK-LABEL: testmsxs: 13*73643b50SAdhemerval Zanella; CHECK: bl llroundf 14*73643b50SAdhemerval Zanelladefine i64 @testmsxs(float %x) { 15*73643b50SAdhemerval Zanellaentry: 16*73643b50SAdhemerval Zanella %0 = tail call i64 @llvm.llround.f32(float %x) 17*73643b50SAdhemerval Zanella ret i64 %0 18*73643b50SAdhemerval Zanella} 19*73643b50SAdhemerval Zanella 20*73643b50SAdhemerval Zanella; CHECK-LABEL: testmswd: 21*73643b50SAdhemerval Zanella; CHECK: bl llround 22*73643b50SAdhemerval Zanelladefine signext i32 @testmswd(double %x) { 23*73643b50SAdhemerval Zanellaentry: 24*73643b50SAdhemerval Zanella %0 = tail call i64 @llvm.llround.f64(double %x) 25*73643b50SAdhemerval Zanella %conv = trunc i64 %0 to i32 26*73643b50SAdhemerval Zanella ret i32 %conv 27*73643b50SAdhemerval Zanella} 28*73643b50SAdhemerval Zanella 29*73643b50SAdhemerval Zanella; CHECK-LABEL: testmsxd: 30*73643b50SAdhemerval Zanella; CHECK: bl llround 31*73643b50SAdhemerval Zanelladefine i64 @testmsxd(double %x) { 32*73643b50SAdhemerval Zanellaentry: 33*73643b50SAdhemerval Zanella %0 = tail call i64 @llvm.llround.f64(double %x) 34*73643b50SAdhemerval Zanella ret i64 %0 35*73643b50SAdhemerval Zanella} 36*73643b50SAdhemerval Zanella 37*73643b50SAdhemerval Zanella; CHECK-LABEL: testmswl: 38*73643b50SAdhemerval Zanella; CHECK: bl llroundl 39*73643b50SAdhemerval Zanelladefine signext i32 @testmswl(ppc_fp128 %x) { 40*73643b50SAdhemerval Zanellaentry: 41*73643b50SAdhemerval Zanella %0 = tail call i64 @llvm.llround.ppcf128(ppc_fp128 %x) 42*73643b50SAdhemerval Zanella %conv = trunc i64 %0 to i32 43*73643b50SAdhemerval Zanella ret i32 %conv 44*73643b50SAdhemerval Zanella} 45*73643b50SAdhemerval Zanella 46*73643b50SAdhemerval Zanella; CHECK-LABEL: testmsll: 47*73643b50SAdhemerval Zanella; CHECK: bl llroundl 48*73643b50SAdhemerval Zanelladefine i64 @testmsll(ppc_fp128 %x) { 49*73643b50SAdhemerval Zanellaentry: 50*73643b50SAdhemerval Zanella %0 = tail call i64 @llvm.llround.ppcf128(ppc_fp128 %x) 51*73643b50SAdhemerval Zanella ret i64 %0 52*73643b50SAdhemerval Zanella} 53*73643b50SAdhemerval Zanella 54*73643b50SAdhemerval Zanelladeclare i64 @llvm.llround.f32(float) nounwind readnone 55*73643b50SAdhemerval Zanelladeclare i64 @llvm.llround.f64(double) nounwind readnone 56*73643b50SAdhemerval Zanelladeclare i64 @llvm.llround.ppcf128(ppc_fp128) nounwind readnone 57