The inconsistency annoyed me.
x = ((x&m_55) << 1) | ((x >> 1)&m_55)
return x
x = ((x&m_55) << 1) | ((x >> 1)&m_55)
return x
-def present_gf_mullp64(tag, wd, x, w, n, what):
+def present_gf_vmullp64(tag, wd, x, w, n, what):
if tag == TAG_PRODPIECE or tag == TAG_REDCFULL:
return
elif (wd == 128 or wd == 64) and TAG_PRODSUM <= tag <= TAG_PRODUCT:
if tag == TAG_PRODPIECE or tag == TAG_REDCFULL:
return
elif (wd == 128 or wd == 64) and TAG_PRODSUM <= tag <= TAG_PRODUCT:
@demo
def demo_vmullp64(u, v):
w = 8*len(u)
@demo
def demo_vmullp64(u, v):
w = 8*len(u)
- return poly64_common(u, v, presfn = present_gf_mullp64,
+ return poly64_common(u, v, presfn = present_gf_vmullp64,
redcwd = w%64 == 32 and 32 or 64)
@demo
redcwd = w%64 == 32 and 32 or 64)
@demo