add missing inf * 0 -> NaN cases
authorJacob Lifshay <programmerjake@gmail.com>
Fri, 13 May 2022 22:10:17 +0000 (15:10 -0700)
committerJacob Lifshay <programmerjake@gmail.com>
Fri, 13 May 2022 22:10:17 +0000 (15:10 -0700)
fpmul_test.smt2

index e836f4df0d3cdc31ffda7824b56b489d03e6e31f..3cb042cccfc09e6ec0d99b251be4da8241849c9d 100644 (file)
         (f32_into_qnan a)
         (ite (f32_is_nan b)
             (f32_into_qnan b)
-            (ite (or (f32_is_infinite a) (f32_is_infinite b))
-                (f32_infinity (bvxor (f32_sign_field a) (f32_sign_field b)))
-                (ite (or (f32_is_zero a) (f32_is_zero b))
-                    (f32_zero (bvxor (f32_sign_field a) (f32_sign_field b)))
-                    (f32_mul_nonzero_finite_rne a b)
+            (ite
+                (or
+                    (and (f32_is_zero a) (f32_is_infinite b))
+                    (and (f32_is_infinite a) (f32_is_zero b))
+                )
+                #x7FC00000
+                (ite (or (f32_is_infinite a) (f32_is_infinite b))
+                    (f32_infinity (bvxor (f32_sign_field a) (f32_sign_field b)))
+                    (ite (or (f32_is_zero a) (f32_is_zero b))
+                        (f32_zero (bvxor (f32_sign_field a) (f32_sign_field b)))
+                        (f32_mul_nonzero_finite_rne a b)
+                    )
                 )
             )
         )