Bug fix in creating constants: need 1U << 31, not 1 << 31.
authorVikram S. Adve <vadve@cs.uiuc.edu>
Thu, 10 Jul 2003 19:48:19 +0000 (19:48 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Thu, 10 Jul 2003 19:48:19 +0000 (19:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7158 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9InstrInfo.cpp

index 4fea658d65c62b9424161c752a38a21a8b6a9535..75bea0d7774d2d717b3d1e6024ac2d66218de977 100644 (file)
@@ -264,7 +264,7 @@ CreateUIntSetInstruction(const TargetMachine& target,
   static const uint64_t lo32 = (uint32_t) ~0;
   if (C <= lo32)                        // High 32 bits are 0.  Set low 32 bits.
     CreateSETUWConst(target, (uint32_t) C, dest, mvec);
-  else if ((C & ~lo32) == ~lo32 && (C & (1 << 31))) {
+  else if ((C & ~lo32) == ~lo32 && (C & (1U << 31))) {
     // All high 33 (not 32) bits are 1s: sign-extension will take care
     // of high 32 bits, so use the sequence for signed int
     CreateSETSWConst(target, (int32_t) C, dest, mvec);