Special Registers Altered:
None
+
+# Twin Multiply and Subtract Doubleword
+
+* msubx RT, RA, RB, RC
+
+Pseudocode:
+
+ <!-- (RS=RT+VL for SVP64, RS=RT+1 for scalar) />
+ prod[0:127] = (RA) * (RB)
+ sub[0:127] = EXTZ(RC) - prod
+ RT <- sub[64:127]
+ RS <- sub[0:63]
+
+Special Registers Altered:
+
+ None
+
+
+weirdaddx RT, RA, RB (RS=RT+VL for SVP64, RS=RT+1 for scalar)
+
+ cat[0:127] = (RB) || (RS)
+ sum[0:127] = cat + EXTZ(RA) + [1]*128
+ rhi[0:63] = sum[0:63]
+ if (RA) <= 1 then rhi = rhi + ([0]*63 || 1)
+ RA = rhi
+ RT = sum[64:127]