diff --git a/lib/Analysis/MemoryDependenceAnalysis.cpp b/lib/Analysis/MemoryDependenceAnalysis.cpp
index d5db2ed..97b791c 100644
--- a/lib/Analysis/MemoryDependenceAnalysis.cpp
+++ b/lib/Analysis/MemoryDependenceAnalysis.cpp
@@ -521,13 +521,6 @@
   const Type *EltTy = cast<PointerType>(Pointer->getType())->getElementType();
   uint64_t PointeeSize = AA->getTypeStoreSize(EltTy);
   
-  // If Pointer is a bitcast instruction, chomp through to the pointee since
-  // they are must alias.  This increases the effectiveness of caching by
-  // finding more equivalences, avoids having to phi translate the bitcast, and
-  // avoids conflicts where we are looking for two "different" values in the
-  // same block when they are really just must aliases.
-  Pointer = Pointer->stripPointerCasts();
-  
   // This is the set of blocks we've inspected, and the pointer we consider in
   // each block.  Because of critical edges, we currently bail out if querying
   // a block with multiple different pointers.  This can happen during PHI
@@ -667,6 +660,7 @@
                             SmallVectorImpl<NonLocalDepEntry> &Result,
                             DenseMap<BasicBlock*, Value*> &Visited,
                             bool SkipFirstBlock) {
+  
   // Look up the cached info for Pointer.
   ValueIsLoadPair CacheKey(Pointer, isLoad);
   
@@ -799,13 +793,6 @@
         BasicBlock *Pred = *PI;
         Value *PredPtr = PtrPHI->getIncomingValueForBlock(Pred);
         
-        // If Pointer is a bitcast instruction, chomp through to the pointee since
-        // they are must alias.  This increases the effectiveness of caching by
-        // finding more equivalences, avoids having to phi translate the bitcast, and
-        // avoids conflicts where we are looking for two "different" values in the
-        // same block when they are really just must aliases.
-        PredPtr = PredPtr->stripPointerCasts();
-        
         // Check to see if we have already visited this pred block with another
         // pointer.  If so, we can't do this lookup.  This failure can occur
         // with PHI translation when a critical edge exists and the PHI node in
diff --git a/test/Transforms/GVN/rle.ll b/test/Transforms/GVN/rle.ll
index 1c5ab67..503a5bb 100644
--- a/test/Transforms/GVN/rle.ll
+++ b/test/Transforms/GVN/rle.ll
@@ -141,32 +141,6 @@
 ; CHECK: ret i8 %A
 }
 
-;; non-local i32/float -> i8 load forwarding.  This also tests that the "P3"
-;; bitcast equivalence can be properly phi translated.
-define i8 @coerce_mustalias_nonlocal1(i32* %P, i1 %cond) {
-  %P2 = bitcast i32* %P to float*
-  br i1 %cond, label %T, label %F
-T:
-  store i32 42, i32* %P
-  br label %Cont
-  
-F:
-  store float 1.0, float* %P2
-  br label %Cont
-
-Cont:
-  %P3 = bitcast i32* %P to i8*
-  %A = load i8* %P3
-  ret i8 %A
-
-; CHECK: @coerce_mustalias_nonlocal1
-; CHECK: Cont:
-; CHECK:   %A = phi i8 [
-; CHECK-NOT: load
-; CHECK: ret i8 %A
-}
-
-
 ;; non-local i32 -> i8 partial redundancy load forwarding.
 define i8 @coerce_mustalias_pre0(i32* %P, i1 %cond) {
   %P3 = bitcast i32* %P to i8*
