lane addresses, the copy role and K/V offsets (both planes share K's
layout), then tile 0 into buffer 0
1700def sqsSetup = (lambda unrestricted headBytes : Nat .
1701 (lambda unrestricted tail : (family SM86Program) .
1702 (saShr sqsT0 saLane 4
1703 (saMovImm sqsT1 7
1704 (saAnd sqsT1 saLane sqsT1
1705 (saImad sqsT1 sqsT0 8 sqsT1
1706 (saMovImm sqsLane 0
1707 (saImad sqsLane sqsT1 sfRowBytes sqsLane
1708 (saShr sqsT1 saLane 3
1709 (saAnd sqsT1 sqsT1 saOne
1710 (saImad sqsLane sqsT1 16 sqsLane
1711 -- transposed: row 8 ((L / 8) % 2) + L % 8, column chunk L / 16
1712 (saMovImm sqsLaneTransposed 7
1713 (saAnd sqsLaneTransposed saLane sqsLaneTransposed
1714 (saImad sqsT1 sqsT1 8 sqsLaneTransposed
1715 (saMovImm sqsLaneTransposed 0
1716 (saImad sqsLaneTransposed sqsT1 sfRowBytes sqsLaneTransposed
1717 (saImad sqsLaneTransposed sqsT0 16 sqsLaneTransposed
1718 (saShr sqsT0 saTid 3
1719 (saMovImm sqsT1 7
1720 (saAnd sqsT1 saTid sqsT1
1721 (saMovImm sqsStore 0
1722 (saImad sqsStore sqsT1 16 sqsStore
1723 (saAddImm (sqsOffset 0) sqsStore 0
1724 (saImad sqsStore sqsT0 sfRowBytes sqsStore
1725 (saImad (sqsOffset 0) sqsT0 (naturalMultiply saHeadWidth saHalfBytes) (sqsOffset 0)
1726 (saImad (sqsOffset 0) saKeyValueHead headBytes (sqsOffset 0)
1727 (saFor 3 (lambda unrestricted i : Nat .
1728 (saAddImm (sqsOffset (succ i)) (sqsOffset 0) (naturalMultiply (succ i) (naturalMultiply 16 (naturalMultiply saHeadWidth saHalfBytes)))))
1729 (sqsCopyTile 0 0 tail))))))))))))))))))))))))))))The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.