xref: /llvm-project/llvm/test/ExecutionEngine/Interpreter/intrinsics.ll (revision c42c67ad60449fe19949f2664c2a5878b3f72b7e)
1*c42c67adSStefan Gränitz; RUN: lli -jit-kind=mcjit -O0 -force-interpreter < %s
2ac0d28dfSJosh Klontz
3ac0d28dfSJosh Klontz; libffi does not support fp128 so we don’t test it
4ac0d28dfSJosh Klontzdeclare float  @llvm.sin.f32(float)
5ac0d28dfSJosh Klontzdeclare double @llvm.sin.f64(double)
6ac0d28dfSJosh Klontzdeclare float  @llvm.cos.f32(float)
7ac0d28dfSJosh Klontzdeclare double @llvm.cos.f64(double)
8e1900dc9SJosh Klontzdeclare float  @llvm.floor.f32(float)
9e1900dc9SJosh Klontzdeclare double @llvm.floor.f64(double)
10ac0d28dfSJosh Klontzdeclare float  @llvm.ceil.f32(float)
11ac0d28dfSJosh Klontzdeclare double @llvm.ceil.f64(double)
12e1900dc9SJosh Klontzdeclare float  @llvm.trunc.f32(float)
13e1900dc9SJosh Klontzdeclare double @llvm.trunc.f64(double)
14e1900dc9SJosh Klontzdeclare float  @llvm.round.f32(float)
15e1900dc9SJosh Klontzdeclare double @llvm.round.f64(double)
164d20e31fSSerge Pavlovdeclare float  @llvm.roundeven.f32(float)
174d20e31fSSerge Pavlovdeclare double @llvm.roundeven.f64(double)
18e1900dc9SJosh Klontzdeclare float  @llvm.copysign.f32(float, float)
19e1900dc9SJosh Klontzdeclare double @llvm.copysign.f64(double, double)
20ac0d28dfSJosh Klontz
21ac0d28dfSJosh Klontzdefine i32 @main() {
22ac0d28dfSJosh Klontz  %sin32 = call float @llvm.sin.f32(float 0.000000e+00)
23ac0d28dfSJosh Klontz  %sin64 = call double @llvm.sin.f64(double 0.000000e+00)
24ac0d28dfSJosh Klontz  %cos32 = call float @llvm.cos.f32(float 0.000000e+00)
25ac0d28dfSJosh Klontz  %cos64 = call double @llvm.cos.f64(double 0.000000e+00)
26e1900dc9SJosh Klontz  %floor32 = call float @llvm.floor.f32(float 0.000000e+00)
27e1900dc9SJosh Klontz  %floor64 = call double @llvm.floor.f64(double 0.000000e+00)
28ac0d28dfSJosh Klontz  %ceil32 = call float @llvm.ceil.f32(float 0.000000e+00)
29ac0d28dfSJosh Klontz  %ceil64 = call double @llvm.ceil.f64(double 0.000000e+00)
30e1900dc9SJosh Klontz  %trunc32 = call float @llvm.trunc.f32(float 0.000000e+00)
31e1900dc9SJosh Klontz  %trunc64 = call double @llvm.trunc.f64(double 0.000000e+00)
32e1900dc9SJosh Klontz  %round32 = call float @llvm.round.f32(float 0.000000e+00)
33e1900dc9SJosh Klontz  %round64 = call double @llvm.round.f64(double 0.000000e+00)
344d20e31fSSerge Pavlov  %roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)
354d20e31fSSerge Pavlov  %roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)
36e1900dc9SJosh Klontz  %copysign32 = call float @llvm.copysign.f32(float 0.000000e+00, float 0.000000e+00)
37e1900dc9SJosh Klontz  %copysign64 = call double @llvm.copysign.f64(double 0.000000e+00, double 0.000000e+00)
38ac0d28dfSJosh Klontz  ret i32 0
39ac0d28dfSJosh Klontz}
40