diff options
Diffstat (limited to 'Test/floats/float22.bpl')
-rw-r--r-- | Test/floats/float22.bpl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Test/floats/float22.bpl b/Test/floats/float22.bpl new file mode 100644 index 00000000..1505c361 --- /dev/null +++ b/Test/floats/float22.bpl @@ -0,0 +1,20 @@ +//Translation from inv_square_true-unreach-call.c
+//Should Verify
+
+function {:builtin "(_ to_fp 8 24) RNE"} TO_FLOAT32_INT(int) returns (float32);
+function {:builtin "(_ to_fp 8 24) RNE"} TO_FLOAT32_REAL(real) returns (float32);
+
+procedure main() returns () {
+ var x : float32;
+ var y : float32;
+ var z : float32;
+
+ havoc x;
+ assume(x >= TO_FLOAT32_INT(-1) && x <= TO_FLOAT32_INT(1));
+
+ if (x <= TO_FLOAT32_REAL(-1e-20) || x >= TO_FLOAT32_REAL(1e-20)) {
+ y := x * x;
+ assert(y != TO_FLOAT32_INT(0));
+ z := TO_FLOAT32_INT(1) / y;
+ }
+}
\ No newline at end of file |