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