File tree Expand file tree Collapse file tree 3 files changed +37
-0
lines changed Expand file tree Collapse file tree 3 files changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -1462,6 +1462,21 @@ LibraryManager.library = {
1462
1462
llvm_floor_f32 : 'Math_floor' ,
1463
1463
llvm_floor_f64 : 'Math_floor' ,
1464
1464
1465
+ llvm_exp2_f32 : function ( x ) {
1466
+ return Math . pow ( 2 , x ) ;
1467
+ } ,
1468
+ llvm_exp2_f64 : 'llvm_exp2_f32' ,
1469
+
1470
+ llvm_log2_f32 : function ( x ) {
1471
+ return Math . log ( x ) / Math . LN2 ; // TODO: Math.log2, when browser support is there
1472
+ } ,
1473
+ llvm_log2_f64 : 'llvm_log2_f32' ,
1474
+
1475
+ llvm_log10_f32 : function ( x ) {
1476
+ return Math . log ( x ) / Math . LN10 ; // TODO: Math.log10, when browser support is there
1477
+ } ,
1478
+ llvm_log10_f64 : 'llvm_log10_f32' ,
1479
+
1465
1480
llvm_copysign_f32 : function ( x , y ) {
1466
1481
return y < 0 || ( y === 0 && 1 / y < 0 ) ? - Math_abs ( x ) : Math_abs ( x ) ;
1467
1482
} ,
Original file line number Diff line number Diff line change @@ -19,6 +19,12 @@ extern float llvm_floor_f32(float x);
19
19
extern double llvm_floor_f64 (double x );
20
20
extern float llvm_sin_f32 (float x );
21
21
extern double llvm_sin_f64 (double x );
22
+ extern float llvm_exp2_f32 (float x );
23
+ extern double llvm_exp2_f64 (double x );
24
+ extern float llvm_log2_f32 (float x );
25
+ extern double llvm_log2_f64 (double x );
26
+ extern float llvm_log10_f32 (float x );
27
+ extern double llvm_log10_f64 (double x );
22
28
}
23
29
24
30
int main (void ) {
@@ -67,5 +73,14 @@ int main(void) {
67
73
printf ("%.1f\n" , llvm_sin_f32 (90.0f * 3.14 /180 ));
68
74
printf ("%.1f\n" , llvm_sin_f64 (270.0 * 3.14 /180 ));
69
75
76
+ printf ("exp2_f32 %.1f\n" , llvm_exp2_f32 (3 ));
77
+ printf ("exp2_f64 %.1f\n" , llvm_exp2_f64 (4.5 ));
78
+ printf ("log2_f32 %.1f\n" , llvm_log2_f32 (16 ));
79
+ printf ("log2_f64 %.1f\n" , llvm_log2_f64 (20 ));
80
+ printf ("log10_f32 %.1f\n" , llvm_log10_f32 (1000 ));
81
+ printf ("log10_f64 %.1f\n" , llvm_log10_f64 (2000 ));
82
+
83
+ printf ("ok.\n" );
84
+
70
85
return 0 ;
71
86
}
Original file line number Diff line number Diff line change @@ -26,3 +26,10 @@ llvm_expect_i32:
26
26
-9
27
27
1.0
28
28
-1.0
29
+ exp2_f32 8.0
30
+ exp2_f64 22.6
31
+ log2_f32 4.0
32
+ log2_f64 4.3
33
+ log10_f32 3.0
34
+ log10_f64 3.3
35
+ ok.
You can’t perform that action at this time.
0 commit comments