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