i64.div_s
Pops two i64 values off the stack, divides the first by the second, disgarding any remaining amount, and then pushes the result back on to the stack. This looks at the values as signed integers (can be negative).
$result = $first / $second

Syntax

i64.div_s

Stack In

i64 The first value to be divided.
i64 The second value to divide by.

Stack Out

i64 The result of dividing the first value by the second one.

Examples

;; Push the i64 values onto the stack
i64.const 12
i64.const 3
  
;; Divide 12 by 3 seeing it as signed
i64.div_s

;; The stack contains an i64 value of 4 (result = 12 / 3)
;; Push the i64 values onto the stack
i64.const 0xF23AB02CF178CD56
i64.const 2
  
;; Divide 0xF23AB02CF178CD56 by 2 seeing it as signed
i64.div_s

;; The stack contains an i64 value of -496143530402748757
;; result = -992287060805497514 / 2
;; Push the i64 values onto the stack
i64.const 0xF23AB02CF178CD56
i64.const 2

;; Divide 0xF23AB02CF178CD56 by 2 seeing it as unsigned
i64.div_u

;; The stack contains an i64 value of 8727228506452027051
;; result = 17454457012904054102 / 2