主要观点:这篇文章是为对怪异 AVX 指令好奇的 SIMD CPU 程序员以及从未弄明白如何计算“最小项”闪烁器值的 Amiga 程序员而写。介绍了 AVX 的 vpternlogd 指令,它是一种位三元逻辑操作指令,可对 512 位寄存器进行复杂逻辑运算,其通过 8 位立即数定义操作,类似于 Amiga 的闪烁器芯片的“最小项”。文中还展示了计算“最小项”值的简单方法,以及 Amiga 常见的“最小项”值 0xE2,同时提到 Intel 关于 vpternlogd 的官方文档中有个示例“最小项”值,颇具趣味。
关键信息:
- AVX 的 vpternlogd 指令可进行位三元逻辑运算,输入为 3 个 512 位寄存器和 8 位立即数。
- Amiga 的闪烁器芯片可处理 3 个位图源并进行逻辑操作,通过 8 位“最小项”控制。
- 计算“最小项”值的方法是将 8 种输入情况的结果列成表格,从下往上读取得到 8 位值。
- Intel 关于 vpternlogd 的官方文档示例“最小项”值。
重要细节: - Tom Forsyth 关于 AVX - 512 ISA 设计的演讲。
- Intel 64 和 IA - 32 架构软件开发人员手册的相关内容。
- 作者的 Twitter 账号。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。