29#ifndef LLVM_MC_LANEBITMASK_H
30#define LLVM_MC_LANEBITMASK_H
44 constexpr static const char *
const FormatStr =
"%016llX";
49 constexpr bool operator== (
LaneBitmask M)
const {
return Mask == M.Mask; }
52 constexpr bool none()
const {
return Mask == 0; }
53 constexpr bool any()
const {
return Mask != 0; }
54 constexpr bool all()
const {
return ~Mask == 0; }
Simple wrapper around std::function<void(raw_ostream&)>.
The instances of the Type class are immutable: once they are created, they are never changed.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
int popcount(T Value) noexcept
Count the number of set bits in a value.
Printable PrintLaneMask(LaneBitmask LaneMask)
Create Printable object to print LaneBitmasks on a raw_ostream.
unsigned Log2_64(uint64_t Value)
Return the floor log base 2 of the specified value, -1 if the value is zero.
format_object< Ts... > format(const char *Fmt, const Ts &... Vals)
These are helper functions used to produce formatted output.
LaneBitmask & operator&=(LaneBitmask M)
constexpr bool operator!=(LaneBitmask M) const
constexpr LaneBitmask(Type V)
constexpr LaneBitmask operator|(LaneBitmask M) const
constexpr LaneBitmask()=default
static constexpr LaneBitmask getLane(unsigned Lane)
LaneBitmask & operator|=(LaneBitmask M)
static constexpr LaneBitmask getAll()
constexpr bool operator<(LaneBitmask M) const
constexpr bool none() const
constexpr bool any() const
constexpr bool all() const
static constexpr LaneBitmask getNone()
constexpr LaneBitmask operator~() const
unsigned getNumLanes() const
constexpr LaneBitmask operator&(LaneBitmask M) const
static constexpr const char *const FormatStr
constexpr Type getAsInteger() const
unsigned getHighestLane() const