diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2020-04-15 12:41:54 +0200 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2020-04-15 12:51:38 +0200 |
commit | 6f64daca8f3cbcf850ce7d502291017187e9fc08 (patch) | |
tree | e9de19390f0d04bf03d7391136d9b05ca5e72dda /llvm/lib/Transforms/Utils/LoopUtils.cpp | |
parent | 5b4b3e0b6e930cf993b9aaadbe709bfb96573598 (diff) | |
download | llvm-6f64daca8f3cbcf850ce7d502291017187e9fc08.zip llvm-6f64daca8f3cbcf850ce7d502291017187e9fc08.tar.gz llvm-6f64daca8f3cbcf850ce7d502291017187e9fc08.tar.bz2 |
Upgrade calls to CreateShuffleVector to use the preferred form of passing an array of ints
No functionality change intended.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopUtils.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUtils.cpp b/llvm/lib/Transforms/Utils/LoopUtils.cpp index 0c94597..add9133 100644 --- a/llvm/lib/Transforms/Utils/LoopUtils.cpp +++ b/llvm/lib/Transforms/Utils/LoopUtils.cpp @@ -917,19 +917,17 @@ llvm::getShuffleReduction(IRBuilderBase &Builder, Value *Src, unsigned Op, assert(isPowerOf2_32(VF) && "Reduction emission only supported for pow2 vectors!"); Value *TmpVec = Src; - SmallVector<Constant *, 32> ShuffleMask(VF, nullptr); + SmallVector<int, 32> ShuffleMask(VF); for (unsigned i = VF; i != 1; i >>= 1) { // Move the upper half of the vector to the lower half. for (unsigned j = 0; j != i / 2; ++j) - ShuffleMask[j] = Builder.getInt32(i / 2 + j); + ShuffleMask[j] = i / 2 + j; // Fill the rest of the mask with undef. - std::fill(&ShuffleMask[i / 2], ShuffleMask.end(), - UndefValue::get(Builder.getInt32Ty())); + std::fill(&ShuffleMask[i / 2], ShuffleMask.end(), -1); Value *Shuf = Builder.CreateShuffleVector( - TmpVec, UndefValue::get(TmpVec->getType()), - ConstantVector::get(ShuffleMask), "rdx.shuf"); + TmpVec, UndefValue::get(TmpVec->getType()), ShuffleMask, "rdx.shuf"); if (Op != Instruction::ICmp && Op != Instruction::FCmp) { // The builder propagates its fast-math-flags setting. |