llvm/test/Object/ar-error.test: Don't check the message "No such file or directory".
[oota-llvm.git] / test / CodeGen / AArch64 / neon-scalar-recip.ll
1 ; RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon < %s | FileCheck %s
2 ; duplicates arm64 tests in vsqrt.ll
3
4 define float @test_vrecpss_f32(float %a, float %b) {
5 ; CHECK: test_vrecpss_f32
6 ; CHECK: frecps {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}}
7   %1 = call float @llvm.aarch64.neon.vrecps.f32(float %a, float %b)
8   ret float %1
9 }
10
11 define double @test_vrecpsd_f64(double %a, double %b) {
12 ; CHECK: test_vrecpsd_f64
13 ; CHECK: frecps {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}}
14   %1 = call double @llvm.aarch64.neon.vrecps.f64(double %a, double %b)
15   ret double %1
16 }
17
18 declare float @llvm.aarch64.neon.vrecps.f32(float, float)
19 declare double @llvm.aarch64.neon.vrecps.f64(double, double)
20
21 define float @test_vrsqrtss_f32(float %a, float %b) {
22 ; CHECK: test_vrsqrtss_f32
23 ; CHECK: frsqrts {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}}
24   %1 = call float @llvm.aarch64.neon.vrsqrts.f32(float %a, float %b)
25   ret float %1
26 }
27
28 define double @test_vrsqrtsd_f64(double %a, double %b) {
29 ; CHECK: test_vrsqrtsd_f64
30 ; CHECK: frsqrts {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}}
31   %1 = call double @llvm.aarch64.neon.vrsqrts.f64(double %a, double %b)
32   ret double %1
33 }
34
35 declare float @llvm.aarch64.neon.vrsqrts.f32(float, float)
36 declare double @llvm.aarch64.neon.vrsqrts.f64(double, double)
37
38 define float @test_vrecpes_f32(float %a) {
39 ; CHECK: test_vrecpes_f32
40 ; CHECK: frecpe {{s[0-9]+}}, {{s[0-9]+}}
41 entry:
42   %0 = call float @llvm.aarch64.neon.vrecpe.f32(float %a)
43   ret float %0
44 }
45
46 define double @test_vrecped_f64(double %a) {
47 ; CHECK: test_vrecped_f64
48 ; CHECK: frecpe {{d[0-9]+}}, {{d[0-9]+}}
49 entry:
50   %0 = call double @llvm.aarch64.neon.vrecpe.f64(double %a)
51   ret double %0
52 }
53
54 declare float @llvm.aarch64.neon.vrecpe.f32(float)
55 declare double @llvm.aarch64.neon.vrecpe.f64(double)
56
57 define float @test_vrecpxs_f32(float %a) {
58 ; CHECK: test_vrecpxs_f32
59 ; CHECK: frecpx {{s[0-9]+}}, {{s[0-9]+}}
60 entry:
61   %0 = call float @llvm.aarch64.neon.vrecpx.f32(float %a)
62   ret float %0
63 }
64
65 define double @test_vrecpxd_f64(double %a) {
66 ; CHECK: test_vrecpxd_f64
67 ; CHECK: frecpx {{d[0-9]+}}, {{d[0-9]+}}
68 entry:
69   %0 = call double @llvm.aarch64.neon.vrecpx.f64(double %a)
70   ret double %0
71 }
72
73 declare float @llvm.aarch64.neon.vrecpx.f32(float)
74 declare double @llvm.aarch64.neon.vrecpx.f64(double)
75
76 define float @test_vrsqrtes_f32(float %a) {
77 ; CHECK: test_vrsqrtes_f32
78 ; CHECK: frsqrte {{s[0-9]+}}, {{s[0-9]+}}
79 entry:
80   %0 = call float @llvm.aarch64.neon.vrsqrte.f32(float %a)
81   ret float %0
82 }
83
84 define double @test_vrsqrted_f64(double %a) {
85 ; CHECK: test_vrsqrted_f64
86 ; CHECK: frsqrte {{d[0-9]+}}, {{d[0-9]+}}
87 entry:
88   %0 = call double @llvm.aarch64.neon.vrsqrte.f64(double %a)
89   ret double %0
90 }
91
92 declare float @llvm.aarch64.neon.vrsqrte.f32(float)
93 declare double @llvm.aarch64.neon.vrsqrte.f64(double)