Commit 1a6ee70 committed Feb 25, 2025 · 4 / 4
1 parent 82a3e85 commit 1a6ee70 Copy full SHA for 1a6ee70
File tree 4 files changed +46
-0
lines changed
4 files changed +46
-0
lines changed Original file line number Diff line number Diff line change @@ -893,6 +893,12 @@ impl Func {
893
893
self . push_i64 ( ) ;
894
894
self . fwd . instructions ( ) . i64_rotr ( ) ;
895
895
}
896
+ Operator :: F32Neg => {
897
+ self . pop ( ) ;
898
+ self . push_f32 ( ) ;
899
+ self . fwd . instructions ( ) . f32_neg ( ) ;
900
+ self . bwd . instructions ( |insn| insn. f32_neg ( ) ) ;
901
+ }
896
902
Operator :: F32Add => {
897
903
self . pop2 ( ) ;
898
904
self . push_f32 ( ) ;
@@ -922,6 +928,12 @@ impl Func {
922
928
self . fwd . instructions ( ) . call ( FUNC_F32_DIV_FWD ) ;
923
929
self . bwd . instructions ( |insn| insn. call ( FUNC_F32_DIV_BWD ) ) ;
924
930
}
931
+ Operator :: F64Neg => {
932
+ self . pop ( ) ;
933
+ self . push_f64 ( ) ;
934
+ self . fwd . instructions ( ) . f64_neg ( ) ;
935
+ self . bwd . instructions ( |insn| insn. f64_neg ( ) ) ;
936
+ }
925
937
Operator :: F64Add => {
926
938
self . pop2 ( ) ;
927
939
self . push_f64 ( ) ;
Original file line number Diff line number Diff line change @@ -771,6 +771,19 @@ fn test_i64_rotr() {
771
771
. test ( )
772
772
}
773
773
774
+ #[ test]
775
+ fn test_f32_neg ( ) {
776
+ Backprop {
777
+ wat : include_str ! ( "../wat/f32_neg.wat" ) ,
778
+ name : "neg" ,
779
+ input : 3.0f32 ,
780
+ output : -3.0f32 ,
781
+ cotangent : 1.0f32 ,
782
+ gradient : -1.0f32 ,
783
+ }
784
+ . test ( )
785
+ }
786
+
774
787
#[ test]
775
788
fn test_f32_add ( ) {
776
789
Backprop {
@@ -823,6 +836,19 @@ fn test_f32_div() {
823
836
. test ( )
824
837
}
825
838
839
+ #[ test]
840
+ fn test_f64_neg ( ) {
841
+ Backprop {
842
+ wat : include_str ! ( "../wat/f64_neg.wat" ) ,
843
+ name : "neg" ,
844
+ input : 3. ,
845
+ output : -3. ,
846
+ cotangent : 1. ,
847
+ gradient : -1. ,
848
+ }
849
+ . test ( )
850
+ }
851
+
826
852
#[ test]
827
853
fn test_f64_add ( ) {
828
854
Backprop {
Original file line number Diff line number Diff line change
1
+ (module
2
+ (func (export " neg" ) (param f32 ) (result f32 )
3
+ (f32.neg
4
+ (local.get 0 ))))
Original file line number Diff line number Diff line change
1
+ (module
2
+ (func (export " neg" ) (param f64 ) (result f64 )
3
+ (f64.neg
4
+ (local.get 0 ))))
You can’t perform that action at this time.
0 commit comments