trunc.wast 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. ;;-------------------------------------------------------------------------------------------------------
  2. ;; Copyright (C) Microsoft. All rights reserved.
  3. ;; Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. ;;-------------------------------------------------------------------------------------------------------
  5. (module
  6. (func (export "i32_trunc_s_f32") (param $x f32) (result i32) (i32.trunc_s/f32 (get_local $x)))
  7. (func (export "i32_trunc_u_f32") (param $x f32) (result i32) (i32.trunc_u/f32 (get_local $x)))
  8. (func (export "i32_trunc_s_f64") (param $x f64) (result i32) (i32.trunc_s/f64 (get_local $x)))
  9. (func (export "i32_trunc_u_f64") (param $x f64) (result i32) (i32.trunc_u/f64 (get_local $x)))
  10. (func (export "i64_trunc_s_f32") (param $x f32) (result i64) (i64.trunc_s/f32 (get_local $x)))
  11. (func (export "i64_trunc_u_f32") (param $x f32) (result i64) (i64.trunc_u/f32 (get_local $x)))
  12. (func (export "i64_trunc_s_f64") (param $x f64) (result i64) (i64.trunc_s/f64 (get_local $x)))
  13. (func (export "i64_trunc_u_f64") (param $x f64) (result i64) (i64.trunc_u/f64 (get_local $x)))
  14. ;;
  15. (func(export "test1") (result i32) (i64.eq (i64.trunc_u/f64 (f64.const 18446744073709549568.0)) (i64.const 0xfffffffffffff800)))
  16. (func(export "test2") (result i32) (i64.eq (i64.trunc_u/f64 (f64.const 18446744073709550592.0)) (i64.const 0))) ;; overflow
  17. ;;
  18. (func(export "test3") (result i32) (i64.eq (i64.trunc_u/f64 (f64.const 0.0)) (i64.const 0)))
  19. (func(export "test4") (result i32) (i64.eq (i64.trunc_u/f64 (f64.const 0.5)) (i64.const 0)))
  20. (func(export "test5") (result i32) (i64.eq (i64.trunc_u/f64 (f64.const -1)) (i64.const 0)))
  21. ;;
  22. (func(export "test6") (result i32) (i64.eq (i64.trunc_s/f64 (f64.const 9223372036854774784)) (i64.const 9223372036854774784)))
  23. (func(export "test7") (result i32) (i64.eq (i64.trunc_s/f64 (f64.const 9223372036854775296)) (i64.const 0))) ;; overflow
  24. ;;
  25. (func(export "test8") (result i32) (i64.eq (i64.trunc_s/f64 (f64.const -9223372036854775808.0)) (i64.const -9223372036854775808)))
  26. (func(export "test9") (result i32) (i64.eq (i64.trunc_s/f64 (f64.const -36893488147419103232.0)) (i64.const 0))) ;; overflow
  27. ;;
  28. (func(export "test10") (result i32) (i64.eq (i64.trunc_u/f32 (f32.const 4294967040.0)) (i64.const 4294967040)))
  29. (func(export "test11") (result i32) (i64.eq (i64.trunc_u/f32 (f32.const 18446744073709550592.0)) (i64.const 0))) ;; overflow
  30. ;;
  31. (func(export "test12") (result i32) (i64.eq (i64.trunc_u/f32 (f32.const 0.0)) (i64.const 0)))
  32. (func(export "test13") (result i32) (i64.eq (i64.trunc_u/f32 (f32.const 0.5)) (i64.const 0)))
  33. (func(export "test14") (result i32) (i64.eq (i64.trunc_u/f32 (f32.const -1)) (i64.const 0))) ;; overflow
  34. ;;
  35. (func(export "test15") (result i32) (i64.eq (i64.trunc_s/f32 (f32.const 2147483520.0)) (i64.const 2147483520)))
  36. (func(export "test16") (result i32) (i64.eq (i64.trunc_s/f32 (f32.const 9223372036854775296.0)) (i64.const 2147483584))) ;; overflow
  37. ;;
  38. (func(export "test17") (result i32) (i64.eq (i64.trunc_s/f32 (f32.const 2147483520.0)) (i64.const 2147483520)))
  39. (func(export "test18") (result i32) (i64.eq (i64.trunc_s/f32 (f32.const 18446744073709551616.0)) (i64.const 0))) ;; overflow
  40. )