1; RUN: llc < %s -march=x86-64 | grep call | count 43
2
3declare <4 x double> @llvm.sin.v4f64(<4 x double> %p)
4declare <4 x double> @llvm.cos.v4f64(<4 x double> %p)
5declare <4 x double> @llvm.pow.v4f64(<4 x double> %p, <4 x double> %q)
6declare <4 x double> @llvm.powi.v4f64(<4 x double> %p, i32)
7
8define <4 x double> @foo(<4 x double> %p)
9{
10  %t = call <4 x double> @llvm.sin.v4f64(<4 x double> %p)
11  ret <4 x double> %t
12}
13define <4 x double> @goo(<4 x double> %p)
14{
15  %t = call <4 x double> @llvm.cos.v4f64(<4 x double> %p)
16  ret <4 x double> %t
17}
18define <4 x double> @moo(<4 x double> %p, <4 x double> %q)
19{
20  %t = call <4 x double> @llvm.pow.v4f64(<4 x double> %p, <4 x double> %q)
21  ret <4 x double> %t
22}
23define <4 x double> @zoo(<4 x double> %p, i32 %q)
24{
25  %t = call <4 x double> @llvm.powi.v4f64(<4 x double> %p, i32 %q)
26  ret <4 x double> %t
27}
28
29
30declare <9 x double> @llvm.exp.v9f64(<9 x double> %a)
31declare <9 x double> @llvm.pow.v9f64(<9 x double> %a, <9 x double> %b)
32declare <9 x double> @llvm.powi.v9f64(<9 x double> %a, i32)
33
34define void @a(<9 x double>* %p) nounwind {
35  %a = load <9 x double>* %p
36  %r = call <9 x double> @llvm.exp.v9f64(<9 x double> %a)
37  store <9 x double> %r, <9 x double>* %p
38  ret void
39}
40define void @b(<9 x double>* %p, <9 x double>* %q) nounwind {
41  %a = load <9 x double>* %p
42  %b = load <9 x double>* %q
43  %r = call <9 x double> @llvm.pow.v9f64(<9 x double> %a, <9 x double> %b)
44  store <9 x double> %r, <9 x double>* %p
45  ret void
46}
47define void @c(<9 x double>* %p, i32 %n) nounwind {
48  %a = load <9 x double>* %p
49  %r = call <9 x double> @llvm.powi.v9f64(<9 x double> %a, i32 %n)
50  store <9 x double> %r, <9 x double>* %p
51  ret void
52}
53