[llvm] r319911 - [X86] Attempt to fix a ubsan failure in the autoupgrade of kunpck intrinsics.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 6 09:54:07 PST 2017
Author: ctopper
Date: Wed Dec 6 09:54:07 2017
New Revision: 319911
URL: http://llvm.org/viewvc/llvm-project?rev=319911&view=rev
Log:
[X86] Attempt to fix a ubsan failure in the autoupgrade of kunpck intrinsics.
Modified:
llvm/trunk/lib/IR/AutoUpgrade.cpp
Modified: llvm/trunk/lib/IR/AutoUpgrade.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/AutoUpgrade.cpp?rev=319911&r1=319910&r2=319911&view=diff
==============================================================================
--- llvm/trunk/lib/IR/AutoUpgrade.cpp (original)
+++ llvm/trunk/lib/IR/AutoUpgrade.cpp Wed Dec 6 09:54:07 2017
@@ -1068,7 +1068,7 @@ void llvm::UpgradeIntrinsicCall(CallInst
CI->getArgOperand(1));
} else if (IsX86 && (Name.startswith("avx512.kunpck"))) {
uint64_t Shift = CI->getType()->getScalarSizeInBits() / 2;
- uint64_t And = (1 << Shift) - 1;
+ uint64_t And = (1ULL << Shift) - 1;
Value* LowBits = Builder.CreateAnd(CI->getArgOperand(0), And);
Value* HighBits = Builder.CreateShl(CI->getArgOperand(1), Shift);
Rep = Builder.CreateOr(LowBits, HighBits);
More information about the llvm-commits
mailing list