84 lines · plain
1; RUN: llc < %s -mtriple=aarch64 -mattr=+v8.5a | FileCheck %s2 3declare float @llvm.aarch64.frint32z.f32(float)4declare double @llvm.aarch64.frint32z.f64(double)5declare float @llvm.aarch64.frint64z.f32(float)6declare double @llvm.aarch64.frint64z.f64(double)7 8define dso_local float @t_frint32z(float %a) {9; CHECK-LABEL: t_frint32z:10; CHECK: frint32z s0, s011; CHECK-NEXT: ret12entry:13 %val = tail call float @llvm.aarch64.frint32z.f32(float %a)14 ret float %val15}16 17define dso_local double @t_frint32zf(double %a) {18; CHECK-LABEL: t_frint32zf:19; CHECK: frint32z d0, d020; CHECK-NEXT: ret21entry:22 %val = tail call double @llvm.aarch64.frint32z.f64(double %a)23 ret double %val24}25 26define dso_local float @t_frint64z(float %a) {27; CHECK-LABEL: t_frint64z:28; CHECK: frint64z s0, s029; CHECK-NEXT: ret30entry:31 %val = tail call float @llvm.aarch64.frint64z.f32(float %a)32 ret float %val33}34 35define dso_local double @t_frint64zf(double %a) {36; CHECK-LABEL: t_frint64zf:37; CHECK: frint64z d0, d038; CHECK-NEXT: ret39entry:40 %val = tail call double @llvm.aarch64.frint64z.f64(double %a)41 ret double %val42}43 44declare float @llvm.aarch64.frint32x.f32(float)45declare double @llvm.aarch64.frint32x.f64(double)46declare float @llvm.aarch64.frint64x.f32(float)47declare double @llvm.aarch64.frint64x.f64(double)48 49define dso_local float @t_frint32x(float %a) {50; CHECK-LABEL: t_frint32x:51; CHECK: frint32x s0, s052; CHECK-NEXT: ret53entry:54 %val = tail call float @llvm.aarch64.frint32x.f32(float %a)55 ret float %val56}57 58define dso_local double @t_frint32xf(double %a) {59; CHECK-LABEL: t_frint32xf:60; CHECK: frint32x d0, d061; CHECK-NEXT: ret62entry:63 %val = tail call double @llvm.aarch64.frint32x.f64(double %a)64 ret double %val65}66 67define dso_local float @t_frint64x(float %a) {68; CHECK-LABEL: t_frint64x:69; CHECK: frint64x s0, s070; CHECK-NEXT: ret71entry:72 %val = tail call float @llvm.aarch64.frint64x.f32(float %a)73 ret float %val74}75 76define dso_local double @t_frint64xf(double %a) {77; CHECK-LABEL: t_frint64xf:78; CHECK: frint64x d0, d079; CHECK-NEXT: ret80entry:81 %val = tail call double @llvm.aarch64.frint64x.f64(double %a)82 ret double %val83}84