remove Type::operator<<() because it's ambiguous
diff --git a/xbyak/xbyak_util.h b/xbyak/xbyak_util.h
index 546e1a0..c8b7e4e 100644
--- a/xbyak/xbyak_util.h
+++ b/xbyak/xbyak_util.h
@@ -93,27 +93,7 @@
uint64_t L;
uint64_t H;
public:
- Type(uint64_t L = 0) : L(L), H(0) {}
- Type& operator<<=(size_t n)
- {
- assert(n < 128);
- if (n < 64) {
- H <<= n;
- if (n > 0) H |= L >> (64 - n);
- L <<= n;
- } else {
- n -= 64;
- H = L << n;
- L = 0;
- }
- return *this;
- }
- Type operator<<(size_t n) const
- {
- Type t = *this;
- t <<= n;
- return t;
- }
+ Type(uint64_t L = 0, uint64_t H = 0) : L(L), H(H) { printf("L=%lx H=%lx\n", L, H); }
Type& operator&=(const Type& rhs)
{
L &= rhs.L;
@@ -138,6 +118,7 @@
t |= rhs;
return t;
}
+ // without explicit because backward compatilibity
operator bool() const { return (H | L) != 0; }
uint64_t getL() const { return L; }
uint64_t getH() const { return H; }
@@ -653,9 +634,9 @@
template<int dummy> const Type CpuT<dummy>::tAMX_INT8 = uint64_t(1) << 60;
template<int dummy> const Type CpuT<dummy>::tAMX_BF16 = uint64_t(1) << 61;
template<int dummy> const Type CpuT<dummy>::tAVX_VNNI = uint64_t(1) << 62;
-template<int dummy> const Type CpuT<dummy>::tCLFLUSHOPT = Type(1) << 63;
-template<int dummy> const Type CpuT<dummy>::tCLDEMOTE = Type(1) << 64;
-template<int dummy> const Type CpuT<dummy>::tMOVDIRI = Type(1) << 65;
+template<int dummy> const Type CpuT<dummy>::tCLFLUSHOPT = uint64_t(1) << 63;
+template<int dummy> const Type CpuT<dummy>::tCLDEMOTE = Type(0, 1 << 0);
+template<int dummy> const Type CpuT<dummy>::tMOVDIRI = Type(0, 1 << 1);
} // local