1 !sum
2 # Abs — signed integer absolute value. ZABS is predicated-only: it has no
3 # unpredicated encoding, so its governing predicate is implicit-all-true and
4 # its merging qualifier becomes the predicated machine op.
5 - go: Abs
6 asm: "ZABS"
7 in:
8 - &int
9 go: $t
10 base: int
11 - class: mask # governing predicate
12 out:
13 # ZABS "wraps" in the signed domain for MinIntN, which is equivalent to just
14 # producing the full range in the unsigned domain.
15 - base: int
16 overwriteBase: uint
17
18 # Div — signed and unsigned integer divide (ZSDIV/ZUDIV), 32- and 64-bit
19 # elements only (the narrower widths have no encoding). Predicated-only and
20 # destructive like the float Div.
21 - go: Div
22 asm: "ZSDIV"
23 in:
24 - *int
25 - *int
26 - class: mask # governing predicate
27 out:
28 - *int
29 - go: Div
30 asm: "ZUDIV"
31 in:
32 - &uint
33 go: $t
34 base: uint
35 - *uint
36 - class: mask # governing predicate
37 out:
38 - *uint
39
View as plain text