[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / v8.5a-scalar-frint3264-intrinsic.ll
blobb4a0f3d557c66e73e985e82b4994079a44a1328e
1 ; RUN: llc < %s -mtriple=aarch64-eabi -mattr=+v8.5a  | FileCheck %s
3 declare float @llvm.aarch64.frint32z.f32(float)
4 declare double @llvm.aarch64.frint32z.f64(double)
5 declare float @llvm.aarch64.frint64z.f32(float)
6 declare double @llvm.aarch64.frint64z.f64(double)
8 define dso_local float @t_frint32z(float %a) {
9 ; CHECK-LABEL: t_frint32z:
10 ; CHECK:         frint32z s0, s0
11 ; CHECK-NEXT:    ret
12 entry:
13   %val = tail call float @llvm.aarch64.frint32z.f32(float %a)
14   ret float %val
17 define dso_local double @t_frint32zf(double %a) {
18 ; CHECK-LABEL: t_frint32zf:
19 ; CHECK:         frint32z d0, d0
20 ; CHECK-NEXT:    ret
21 entry:
22   %val = tail call double @llvm.aarch64.frint32z.f64(double %a)
23   ret double %val
26 define dso_local float @t_frint64z(float %a) {
27 ; CHECK-LABEL: t_frint64z:
28 ; CHECK:         frint64z s0, s0
29 ; CHECK-NEXT:    ret
30 entry:
31   %val = tail call float @llvm.aarch64.frint64z.f32(float %a)
32   ret float %val
35 define dso_local double @t_frint64zf(double %a) {
36 ; CHECK-LABEL: t_frint64zf:
37 ; CHECK:         frint64z d0, d0
38 ; CHECK-NEXT:    ret
39 entry:
40   %val = tail call double @llvm.aarch64.frint64z.f64(double %a)
41   ret double %val
44 declare float @llvm.aarch64.frint32x.f32(float)
45 declare double @llvm.aarch64.frint32x.f64(double)
46 declare float @llvm.aarch64.frint64x.f32(float)
47 declare double @llvm.aarch64.frint64x.f64(double)
49 define dso_local float @t_frint32x(float %a) {
50 ; CHECK-LABEL: t_frint32x:
51 ; CHECK:         frint32x s0, s0
52 ; CHECK-NEXT:    ret
53 entry:
54   %val = tail call float @llvm.aarch64.frint32x.f32(float %a)
55   ret float %val
58 define dso_local double @t_frint32xf(double %a) {
59 ; CHECK-LABEL: t_frint32xf:
60 ; CHECK:         frint32x d0, d0
61 ; CHECK-NEXT:    ret
62 entry:
63   %val = tail call double @llvm.aarch64.frint32x.f64(double %a)
64   ret double %val
67 define dso_local float @t_frint64x(float %a) {
68 ; CHECK-LABEL: t_frint64x:
69 ; CHECK:         frint64x s0, s0
70 ; CHECK-NEXT:    ret
71 entry:
72   %val = tail call float @llvm.aarch64.frint64x.f32(float %a)
73   ret float %val
76 define dso_local double @t_frint64xf(double %a) {
77 ; CHECK-LABEL: t_frint64xf:
78 ; CHECK:         frint64x d0, d0
79 ; CHECK-NEXT:    ret
80 entry:
81   %val = tail call double @llvm.aarch64.frint64x.f64(double %a)
82   ret double %val