LLVM: lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
10
12
14 if (Num == 0)
15 return Num;
16 unsigned Mask = Num;
17 Mask >>= 1;
18 for (unsigned ShiftBy = 1; ShiftBy < sizeof(Num) * 8; ShiftBy <<= 1)
19 Mask |= Mask >> ShiftBy;
20 return Num & ~Mask;
21}
22
23#ifndef NDEBUG
25 for (auto [Idx, V] : enumerate(Bndl))
26 dbgs() << Idx << "." << *V << "\n";
27}
30#endif
31
32}
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
static LLVM_DUMP_METHOD void dump(ArrayRef< Value * > Bndl)
Helper dump function for debugging.
Definition VecUtils.cpp:28
static LLVM_ABI unsigned getFloorPowerOf2(unsigned Num)
\Returns the first integer power of 2 that is <= Num.
Definition VecUtils.cpp:13
static void dumpImpl(ArrayRef< T * > Bndl)
Definition VecUtils.cpp:24
auto enumerate(FirstRange &&First, RestRanges &&...Rest)
Given two or more input ranges, returns a new range whose values are tuples (A, B,...
LLVM_ABI raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.