+struct bifrost_fma_icmp16 {
+ unsigned src0 : 3;
+ unsigned src1 : 3;
+ unsigned unk : 5; /* 11010 */
+ enum bifrost_icmp_cond cond : 3;
+ unsigned op : 9;
+} __attribute__((packed));
+
+#define BIFROST_ADD_OP_ICMP_32 (0x0f600 >> 8)
+#define BIFROST_ADD_OP_ICMP_16 (0x0f000 >> 11)
+
+struct bifrost_add_icmp {
+ unsigned src0 : 3;
+ unsigned src1 : 3;
+ enum bifrost_icmp_cond cond : 3;
+ unsigned sz : 1; /* 1 for 32, 0 for 8 */
+ unsigned d3d : 1; /* if set, true is ~0. otherwise, true is 1 */
+ unsigned op : 9;
+} __attribute__((packed));
+
+struct bifrost_add_icmp16 {
+ unsigned src0 : 3;
+ unsigned src1 : 3;
+ unsigned src0_swizzle : 2;
+ unsigned src1_swizzle : 2;
+ unsigned d3d : 1; /* if set, true is ~0. otherwise, true is 1 */
+ enum bifrost_icmp_cond cond : 3;
+ unsigned op : 6;
+} __attribute__((packed));
+