def quads

bendtorch@1.3.0.0 · dtype.bend:357

import bendtorch@1.3.0.0/dtype.bend as Dtype
import Base

357# four bytes to a word, little-endian; a short last group is padded with zeros
358def quads(xs: List<&2, U32>) -> List<&2, U32>:
359  match xs:
360    case Nil{}:
361      Nil{}
362    case Con{+a, Nil{}}:
363      [a]
364    case Con{+a, Con{+b, Nil{}}}:
365      [(a .|. U32.shln(b, 8n) : U32)]
366    case Con{+a, Con{+b, Con{+c, Nil{}}}}:
367      [((a .|. U32.shln(b, 8n) : U32) .|. U32.shln(c, 16n) : U32)]
368    case Con{+a, Con{+b, Con{+c, Con{+d, t}}}}:
369      (((a .|. U32.shln(b, 8n) : U32) .|. U32.shln(c, 16n) : U32) .|. U32.shln(d, 24n) : U32) <> quads(t)

Uses (4)

Used by (1)