summaryrefslogtreecommitdiff
path: root/Test/floats/float22.bpl
diff options
context:
space:
mode:
Diffstat (limited to 'Test/floats/float22.bpl')
-rw-r--r--Test/floats/float22.bpl20
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