the rotation of one component: x1 (first half), x2 (second half), cos, sin →
out1 = x1·cos − x2·sin ; out2 = x2·cos + x1·sin. `first` waits on the loads.
445def attentionHeadLayoutSM86Rotate =
446 (lambda unrestricted out1 : Byte .
447 (lambda unrestricted out2 : Byte .
448 (lambda unrestricted x1 : Byte .
449 (lambda unrestricted x2 : Byte .
450 (lambda unrestricted cosine : Byte .
451 (lambda unrestricted sine : Byte .
452 (lambda unrestricted first : (family SM86Control) .
453 (lambda unrestricted tail : (family SM86Program) .
454 (attentionHeadLayoutSM86Next
455 (attentionHeadLayoutSM86Multiply out1 x2 sine first)
456 (attentionHeadLayoutSM86Next
457 (attentionHeadLayoutSM86Negate out1)
458 (attentionHeadLayoutSM86Next
459 (attentionHeadLayoutSM86FMA out1 x1 cosine)
460 (attentionHeadLayoutSM86Next
461 (attentionHeadLayoutSM86Multiply out2 x1 sine sm86SafeControl)
462 (attentionHeadLayoutSM86Next
463 (attentionHeadLayoutSM86FMA out2 x2 cosine)
464 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.