[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