xref: /minix3/external/bsd/llvm/dist/llvm/test/ExecutionEngine/MCJIT/test-fp.ll (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc; RUN: %lli %s > /dev/null
2f4a2713aSLionel Sambuc
3f4a2713aSLionel Sambucdefine double @test(double* %DP, double %Arg) {
4f4a2713aSLionel Sambuc	%D = load double* %DP		; <double> [#uses=1]
5f4a2713aSLionel Sambuc	%V = fadd double %D, 1.000000e+00		; <double> [#uses=2]
6f4a2713aSLionel Sambuc	%W = fsub double %V, %V		; <double> [#uses=3]
7f4a2713aSLionel Sambuc	%X = fmul double %W, %W		; <double> [#uses=2]
8f4a2713aSLionel Sambuc	%Y = fdiv double %X, %X		; <double> [#uses=2]
9f4a2713aSLionel Sambuc	%Z = frem double %Y, %Y		; <double> [#uses=3]
10f4a2713aSLionel Sambuc	%Z1 = fdiv double %Z, %W		; <double> [#uses=0]
11f4a2713aSLionel Sambuc	%Q = fadd double %Z, %Arg		; <double> [#uses=1]
12f4a2713aSLionel Sambuc	%R = bitcast double %Q to double		; <double> [#uses=1]
13f4a2713aSLionel Sambuc	store double %R, double* %DP
14f4a2713aSLionel Sambuc	ret double %Z
15f4a2713aSLionel Sambuc}
16f4a2713aSLionel Sambuc
17f4a2713aSLionel Sambucdefine i32 @main() {
18f4a2713aSLionel Sambuc	%X = alloca double		; <double*> [#uses=2]
19f4a2713aSLionel Sambuc	store double 0.000000e+00, double* %X
20f4a2713aSLionel Sambuc	call double @test( double* %X, double 2.000000e+00 )		; <double>:1 [#uses=0]
21f4a2713aSLionel Sambuc	ret i32 0
22f4a2713aSLionel Sambuc}
23f4a2713aSLionel Sambuc
24