[opaque pointer type] Add textual IR support for explicit type parameter to load instruction

Essentially the same as the GEP change in r230786.

A similar migration script can be used to update test cases, though a few more
test case improvements/changes were required this time around: (r229269-r229278)

import fileinput
import sys
import re

pat = re.compile(r"((?:=|:|^)\s*load (?:atomic )?(?:volatile )?(.*?))(| addrspace\(\d+\) *)\*($| *(?:%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|\[\[[a-zA-Z]|\{\{).*$)")

for line in sys.stdin:
  sys.stdout.write(re.sub(pat, r"\1, \2\3*\4", line))

Reviewers: rafael, dexonsmith, grosser

Differential Revision: http://reviews.llvm.org/D7649

llvm-svn: 230794
diff --git a/llvm/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll b/llvm/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll
index e5a6be9..336c0a9 100644
--- a/llvm/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll
+++ b/llvm/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll
@@ -8,6 +8,6 @@
 	%Y = getelementptr [4 x i32], [4 x i32]* %X, i64 0, i64 0		; <i32*> [#uses=1]
         ; Must preserve arrayness!
 	%Z = getelementptr i32, i32* %Y, i64 1		; <i32*> [#uses=1]
-	%A = load i32* %Z		; <i32> [#uses=1]
+	%A = load i32, i32* %Z		; <i32> [#uses=1]
 	ret i32 %A
 }
diff --git a/llvm/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll b/llvm/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll
index a455e4f..2701fda 100644
--- a/llvm/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll
+++ b/llvm/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll
@@ -12,7 +12,7 @@
 	%tmp14 = getelementptr [2 x <4 x i32>], [2 x <4 x i32>]* %vsiidx, i32 0, i32 1		; <<4 x i32>*> [#uses=1]
 	store <4 x i32> %tmp10, <4 x i32>* %tmp14
 	%tmp15 = getelementptr [2 x <4 x i32>], [2 x <4 x i32>]* %vsiidx, i32 0, i32 0, i32 4		; <i32*> [#uses=1]
-	%tmp.upgrd.4 = load i32* %tmp15		; <i32> [#uses=1]
+	%tmp.upgrd.4 = load i32, i32* %tmp15		; <i32> [#uses=1]
 	ret i32 %tmp.upgrd.4
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll b/llvm/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll
index 9e73452..966b179 100644
--- a/llvm/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll
+++ b/llvm/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll
@@ -14,7 +14,7 @@
   %tmp2 = getelementptr %struct.UnionType, %struct.UnionType* %tmp, i32 0, i32 0, i32 0
   %tmp13 = getelementptr %struct.UnionType, %struct.UnionType* %p, i32 0, i32 0, i32 0
   call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp2, i8* %tmp13, i32 8, i32 0, i1 false)
-  %tmp5 = load %struct.UnionType** %pointerToUnion
+  %tmp5 = load %struct.UnionType*, %struct.UnionType** %pointerToUnion
   %tmp56 = getelementptr %struct.UnionType, %struct.UnionType* %tmp5, i32 0, i32 0, i32 0
   %tmp7 = getelementptr %struct.UnionType, %struct.UnionType* %tmp, i32 0, i32 0, i32 0
   call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp56, i8* %tmp7, i32 8, i32 0, i1 false)
diff --git a/llvm/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll b/llvm/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll
index 52bd2c7..2de2f67 100644
--- a/llvm/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll
+++ b/llvm/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll
@@ -11,20 +11,20 @@
 	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
 	store i16 %b, i16* %b_addr
 	%tmp1 = getelementptr %struct.S, %struct.S* %s, i32 0, i32 0		; <i16*> [#uses=1]
-	%tmp2 = load i16* %b_addr, align 2		; <i16> [#uses=1]
+	%tmp2 = load i16, i16* %b_addr, align 2		; <i16> [#uses=1]
 	store i16 %tmp2, i16* %tmp1, align 2
 	%tmp3 = getelementptr %struct.S, %struct.S* %s, i32 0, i32 0		; <i16*> [#uses=1]
 	%tmp34 = bitcast i16* %tmp3 to [2 x i1]*		; <[2 x i1]*> [#uses=1]
 	%tmp5 = getelementptr [2 x i1], [2 x i1]* %tmp34, i32 0, i32 1		; <i1*> [#uses=1]
-	%tmp6 = load i1* %tmp5, align 1		; <i1> [#uses=1]
+	%tmp6 = load i1, i1* %tmp5, align 1		; <i1> [#uses=1]
 	%tmp67 = zext i1 %tmp6 to i32		; <i32> [#uses=1]
 	store i32 %tmp67, i32* %tmp, align 4
-	%tmp8 = load i32* %tmp, align 4		; <i32> [#uses=1]
+	%tmp8 = load i32, i32* %tmp, align 4		; <i32> [#uses=1]
 	store i32 %tmp8, i32* %retval, align 4
 	br label %return
 
 return:		; preds = %entry
-	%retval9 = load i32* %retval		; <i32> [#uses=1]
+	%retval9 = load i32, i32* %retval		; <i32> [#uses=1]
 	%retval910 = trunc i32 %retval9 to i1		; <i1> [#uses=1]
 	ret i1 %retval910
 }
diff --git a/llvm/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll b/llvm/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll
index 343fa1d..99366b3 100644
--- a/llvm/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll
+++ b/llvm/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll
@@ -13,7 +13,7 @@
 	%tmp16 = getelementptr [1 x %struct.T], [1 x %struct.T]* %s, i32 0, i32 0		; <%struct.T*> [#uses=1]
 	%tmp17 = getelementptr %struct.T, %struct.T* %tmp16, i32 0, i32 1		; <[3 x i8]*> [#uses=1]
 	%tmp1718 = bitcast [3 x i8]* %tmp17 to i32*		; <i32*> [#uses=1]
-	%tmp19 = load i32* %tmp1718, align 4		; <i32> [#uses=1]
+	%tmp19 = load i32, i32* %tmp1718, align 4		; <i32> [#uses=1]
 	%mask = and i32 %tmp19, 16777215		; <i32> [#uses=2]
 	%mask2324 = trunc i32 %mask to i8		; <i8> [#uses=1]
 	ret i8 %mask2324
diff --git a/llvm/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll b/llvm/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll
index d66070b..f37b6529 100644
--- a/llvm/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll
+++ b/llvm/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll
@@ -11,6 +11,6 @@
 	%tmp7 = getelementptr %struct..0anon, %struct..0anon* %c, i32 0, i32 0		; <<1 x i64>*> [#uses=1]
 	%tmp78 = bitcast <1 x i64>* %tmp7 to [2 x i32]*		; <[2 x i32]*> [#uses=1]
 	%tmp9 = getelementptr [2 x i32], [2 x i32]* %tmp78, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp10 = load i32* %tmp9, align 4		; <i32> [#uses=0]
+	%tmp10 = load i32, i32* %tmp9, align 4		; <i32> [#uses=0]
 	unreachable
 }
diff --git a/llvm/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll b/llvm/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll
index ad4918d..d1f3312 100644
--- a/llvm/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll
+++ b/llvm/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll
@@ -15,7 +15,7 @@
 	store { i32, i32 } %res2, { i32, i32 }* %target
         ; Actually use %target, so it doesn't get removed altogether
         %ptr = getelementptr { i32, i32 }, { i32, i32 }* %target, i32 0, i32 0
-        %val = load i32* %ptr
+        %val = load i32, i32* %ptr
 	ret i32 %val
 }
 
@@ -28,6 +28,6 @@
 	store [ 2 x i32 ] %res2, [ 2 x i32 ]* %target
         ; Actually use %target, so it doesn't get removed altogether
         %ptr = getelementptr [ 2 x i32 ], [ 2 x i32 ]* %target, i32 0, i32 0
-        %val = load i32* %ptr
+        %val = load i32, i32* %ptr
 	ret i32 %val
 }
diff --git a/llvm/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll b/llvm/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll
index 3ddb67d..c0ff25f 100644
--- a/llvm/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll
+++ b/llvm/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll
@@ -14,7 +14,7 @@
   %s2 = bitcast %struct.x* %s to i8*
   call void @llvm.memcpy.p0i8.p0i8.i32(i8* %r1, i8* %s2, i32 12, i32 8, i1 false)
   %1 = getelementptr %struct.x, %struct.x* %r, i32 0, i32 0, i32 1
-  %2 = load i32* %1, align 4
+  %2 = load i32, i32* %1, align 4
   ret i32 %2
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll b/llvm/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll
index e60a2d0..f0af1ca 100644
--- a/llvm/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll
+++ b/llvm/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll
@@ -11,6 +11,6 @@
        store i32 %x, i32* %cast
        %second = getelementptr %pair, %pair* %instance, i32 0, i32 1
        store i32 %y, i32* %second
-       %v = load i32* %cast
+       %v = load i32, i32* %cast
        ret i32 %v
 }
diff --git a/llvm/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll b/llvm/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll
index 67228a7..56375ff 100644
--- a/llvm/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll
+++ b/llvm/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll
@@ -9,7 +9,7 @@
 	%tmp = alloca { i64, i64 }, align 8		; <{ i64, i64 }*> [#uses=2]
 	store { i64, i64 } %0, { i64, i64 }* %tmp
 	%1 = bitcast { i64, i64 }* %tmp to %struct.anon*		; <%struct.anon*> [#uses=1]
-	%2 = load %struct.anon* %1, align 8		; <%struct.anon> [#uses=1]
+	%2 = load %struct.anon, %struct.anon* %1, align 8		; <%struct.anon> [#uses=1]
         %tmp3 = extractvalue %struct.anon %2, 0
 	ret i32 %tmp3
 }
diff --git a/llvm/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll b/llvm/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll
index 218d3d5..d1cc424 100644
--- a/llvm/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll
+++ b/llvm/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll
@@ -30,16 +30,16 @@
   store %struct.int16x8x2_t* %dst, %struct.int16x8x2_t** %dst_addr
   %2 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %__ax, i32 0, i32 0
   %3 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %tmp_addr, i32 0, i32 0
-  %4 = load <8 x i16>* %3, align 16
+  %4 = load <8 x i16>, <8 x i16>* %3, align 16
   store <8 x i16> %4, <8 x i16>* %2, align 16
   %5 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %__bx, i32 0, i32 0
   %6 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %tmp_addr, i32 0, i32 0
-  %7 = load <8 x i16>* %6, align 16
+  %7 = load <8 x i16>, <8 x i16>* %6, align 16
   store <8 x i16> %7, <8 x i16>* %5, align 16
   %8 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %__ax, i32 0, i32 0
-  %9 = load <8 x i16>* %8, align 16
+  %9 = load <8 x i16>, <8 x i16>* %8, align 16
   %10 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %__bx, i32 0, i32 0
-  %11 = load <8 x i16>* %10, align 16
+  %11 = load <8 x i16>, <8 x i16>* %10, align 16
   %12 = getelementptr inbounds %union..0anon, %union..0anon* %__rv, i32 0, i32 0
   %13 = bitcast %struct.int16x8x2_t* %12 to %struct.__neon_int16x8x2_t*
   %14 = shufflevector <8 x i16> %9, <8 x i16> %11, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
@@ -55,7 +55,7 @@
   %tmp21 = bitcast %struct.int16x8x2_t* %tmp2 to i8*
   %21 = bitcast %struct.int16x8x2_t* %0 to i8*
   call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp21, i8* %21, i32 32, i32 16, i1 false)
-  %22 = load %struct.int16x8x2_t** %dst_addr, align 4
+  %22 = load %struct.int16x8x2_t*, %struct.int16x8x2_t** %dst_addr, align 4
   %23 = bitcast %struct.int16x8x2_t* %22 to i8*
   %tmp22 = bitcast %struct.int16x8x2_t* %tmp2 to i8*
   call void @llvm.memcpy.p0i8.p0i8.i32(i8* %23, i8* %tmp22, i32 32, i32 16, i1 false)
diff --git a/llvm/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll b/llvm/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll
index 1f5a2d8..dee27f8 100644
--- a/llvm/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll
+++ b/llvm/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll
@@ -21,7 +21,7 @@
   %1 = getelementptr inbounds %struct.Point_3, %struct.Point_3* %tmpcast, i64 0, i32 0
   %base.i.i.i = getelementptr inbounds %struct.PointC3, %struct.PointC3* %1, i64 0, i32 0
   %arrayidx.i.i.i.i = getelementptr inbounds %struct.array, %struct.array* %base.i.i.i, i64 0, i32 0, i64 0
-  %tmp5.i.i = load float* %arrayidx.i.i.i.i, align 4
+  %tmp5.i.i = load float, float* %arrayidx.i.i.i.i, align 4
   ret void
 }
 
@@ -35,7 +35,7 @@
   %tmpcast = bitcast {<2 x float>, float}* %ref.tmp2 to float*
   %0 = getelementptr {<2 x float>, float}, {<2 x float>, float}* %ref.tmp2, i64 0, i32 0
   store <2 x float> zeroinitializer, <2 x float>* %0, align 16
-  %tmp5.i.i = load float* %tmpcast, align 4
+  %tmp5.i.i = load float, float* %tmpcast, align 4
   ret void
 }
 
@@ -54,8 +54,8 @@
   %0 = getelementptr {<2 x float>, float}, {<2 x float>, float}* %ref.tmp2, i64 0, i32 0
   store <2 x float> zeroinitializer, <2 x float>* %0, align 16
   store float 1.0, float* %tmpcast2, align 4
-  %r1 = load float* %tmpcast, align 4
-  %r2 = load float* %tmpcast2, align 4
+  %r1 = load float, float* %tmpcast, align 4
+  %r2 = load float, float* %tmpcast2, align 4
   %r = fadd float %r1, %r2
   ret float %r
 }
@@ -70,6 +70,6 @@
   store { <2 x float>, <2 x float> } {<2 x float> <float 0.0, float 1.0>, <2 x float> <float 2.0, float 3.0>}, { <2 x float>, <2 x float> }* %ai, align 8
   %tmpcast = bitcast { <2 x float>, <2 x float> }* %ai to [4 x float]*
   %arrayidx = getelementptr inbounds [4 x float], [4 x float]* %tmpcast, i64 0, i64 3
-  %f = load float* %arrayidx, align 4
+  %f = load float, float* %arrayidx, align 4
   ret float %f
 }
diff --git a/llvm/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll b/llvm/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll
index 9e53163..af6d1f3 100644
--- a/llvm/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll
+++ b/llvm/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll
@@ -14,7 +14,7 @@
   %a = alloca <4 x float>, align 16
   %p = bitcast <4 x float>* %a to i8*
   call void @llvm.memset.p0i8.i32(i8* %p, i8 0, i32 3, i32 16, i1 false)
-  %vec = load <4 x float>* %a, align 8
+  %vec = load <4 x float>, <4 x float>* %a, align 8
   %val = extractelement <4 x float> %vec, i32 0
   ret float %val
 }
diff --git a/llvm/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll b/llvm/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll
index 5f4d0fc..9a24662 100644
--- a/llvm/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll
+++ b/llvm/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll
@@ -25,7 +25,7 @@
 
 join:                                             ; preds = %then, %else
   %storemerge.in = phi i32* [ %retptr2, %else ], [ %retptr1, %then ]
-  %storemerge = load i32* %storemerge.in
+  %storemerge = load i32, i32* %storemerge.in
   %x3 = call i32 @extern_fn2(i32 %storemerge)
   ret void
 
diff --git a/llvm/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll b/llvm/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll
index af8d55c..51d1d14 100644
--- a/llvm/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll
+++ b/llvm/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll
@@ -19,7 +19,7 @@
   %1 = bitcast %struct.S* %ret to i8*
   call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* %1, i64 8, i32 8, i1 false)
   %2 = bitcast %struct.S* %retval to double*
-  %3 = load double* %2, align 1
+  %3 = load double, double* %2, align 1
   ret double %3
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/AggregatePromote.ll b/llvm/test/Transforms/ScalarRepl/AggregatePromote.ll
index a3386f6..f6dfdf5 100644
--- a/llvm/test/Transforms/ScalarRepl/AggregatePromote.ll
+++ b/llvm/test/Transforms/ScalarRepl/AggregatePromote.ll
@@ -10,7 +10,7 @@
 	%B = bitcast i64* %A to i32*		; <i32*> [#uses=1]
 	%C = bitcast i32* %B to i8*		; <i8*> [#uses=1]
 	store i8 0, i8* %C
-	%Y = load i64* %A		; <i64> [#uses=1]
+	%Y = load i64, i64* %A		; <i64> [#uses=1]
 	ret i64 %Y
 }
 
@@ -21,7 +21,7 @@
 	%tmp.1 = getelementptr i32, i32* %tmp.0, i32 1		; <i32*> [#uses=1]
 	%tmp.2 = bitcast i32* %tmp.1 to i8*		; <i8*> [#uses=1]
 	%tmp.3 = getelementptr i8, i8* %tmp.2, i32 3		; <i8*> [#uses=1]
-	%tmp.2.upgrd.1 = load i8* %tmp.3		; <i8> [#uses=1]
+	%tmp.2.upgrd.1 = load i8, i8* %tmp.3		; <i8> [#uses=1]
 	ret i8 %tmp.2.upgrd.1
 }
 
@@ -31,9 +31,9 @@
 	store i64 %X, i64* %tmp.0
 	%tmp.3 = bitcast { i64 }* %a to [4 x i16]*		; <[4 x i16]*> [#uses=2]
 	%tmp.4 = getelementptr [4 x i16], [4 x i16]* %tmp.3, i32 0, i32 3		; <i16*> [#uses=1]
-	%tmp.5 = load i16* %tmp.4		; <i16> [#uses=1]
+	%tmp.5 = load i16, i16* %tmp.4		; <i16> [#uses=1]
 	%tmp.8 = getelementptr [4 x i16], [4 x i16]* %tmp.3, i32 0, i32 2		; <i16*> [#uses=1]
-	%tmp.9 = load i16* %tmp.8		; <i16> [#uses=1]
+	%tmp.9 = load i16, i16* %tmp.8		; <i16> [#uses=1]
 	%tmp.10 = or i16 %tmp.9, %tmp.5		; <i16> [#uses=1]
 	ret i16 %tmp.10
 }
@@ -43,9 +43,9 @@
 	store i64 %X, i64* %a
 	%tmp.3 = bitcast i64* %a to [4 x i16]*		; <[4 x i16]*> [#uses=2]
 	%tmp.4 = getelementptr [4 x i16], [4 x i16]* %tmp.3, i32 0, i32 3		; <i16*> [#uses=1]
-	%tmp.5 = load i16* %tmp.4		; <i16> [#uses=1]
+	%tmp.5 = load i16, i16* %tmp.4		; <i16> [#uses=1]
 	%tmp.8 = getelementptr [4 x i16], [4 x i16]* %tmp.3, i32 0, i32 2		; <i16*> [#uses=1]
-	%tmp.9 = load i16* %tmp.8		; <i16> [#uses=1]
+	%tmp.9 = load i16, i16* %tmp.8		; <i16> [#uses=1]
 	%tmp.10 = or i16 %tmp.9, %tmp.5		; <i16> [#uses=1]
 	ret i16 %tmp.10
 }
diff --git a/llvm/test/Transforms/ScalarRepl/DifferingTypes.ll b/llvm/test/Transforms/ScalarRepl/DifferingTypes.ll
index 933c47f..3860f6c 100644
--- a/llvm/test/Transforms/ScalarRepl/DifferingTypes.ll
+++ b/llvm/test/Transforms/ScalarRepl/DifferingTypes.ll
@@ -10,7 +10,7 @@
 	store i32 %i, i32* %I
 	%P = bitcast i32* %I to i8*		; <i8*> [#uses=1]
 	store i8 %j, i8* %P
-	%t = load i32* %I		; <i32> [#uses=1]
+	%t = load i32, i32* %I		; <i32> [#uses=1]
 	ret i32 %t
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/address-space.ll b/llvm/test/Transforms/ScalarRepl/address-space.ll
index d6e3b74..b8b90ef 100644
--- a/llvm/test/Transforms/ScalarRepl/address-space.ll
+++ b/llvm/test/Transforms/ScalarRepl/address-space.ll
@@ -7,7 +7,7 @@
 %struct.anon = type { [1 x float] }
 
 ; CHECK-LABEL: define void @Test(
-; CHECK: load float addrspace(2)*
+; CHECK: load float, float addrspace(2)*
 ; CHECK-NEXT: fsub float
 ; CHECK: store float {{.*}}, float addrspace(2)* 
 define void @Test(%struct.anon addrspace(2)* %pPtr) nounwind {
@@ -19,7 +19,7 @@
   call void @llvm.memcpy.p0i8.p2i8.i64(i8* %tmp1, i8 addrspace(2)* %tmp2, i64 4, i32 4, i1 false)
   %tmp3 = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 0 ; <[1 x float]*> [#uses=1]
   %arrayidx4 = getelementptr inbounds [1 x float], [1 x float]* %tmp3, i32 0, i64 0 ; <float*> [#uses=2]
-  %tmp5 = load float* %arrayidx4                  ; <float> [#uses=1]
+  %tmp5 = load float, float* %arrayidx4                  ; <float> [#uses=1]
   %sub = fsub float %tmp5, 5.000000e+00           ; <float> [#uses=1]
   store float %sub, float* %arrayidx4
   %arrayidx7 = getelementptr inbounds %struct.anon, %struct.anon addrspace(2)* %pPtr, i64 0 ; <%struct.anon addrspace(2)*> [#uses=1]
diff --git a/llvm/test/Transforms/ScalarRepl/arraytest.ll b/llvm/test/Transforms/ScalarRepl/arraytest.ll
index d95d5a1..486e725 100644
--- a/llvm/test/Transforms/ScalarRepl/arraytest.ll
+++ b/llvm/test/Transforms/ScalarRepl/arraytest.ll
@@ -5,7 +5,7 @@
 	%X = alloca [4 x i32]		; <[4 x i32]*> [#uses=1]
 	%Y = getelementptr [4 x i32], [4 x i32]* %X, i64 0, i64 0		; <i32*> [#uses=2]
 	store i32 0, i32* %Y
-	%Z = load i32* %Y		; <i32> [#uses=1]
+	%Z = load i32, i32* %Y		; <i32> [#uses=1]
 	ret i32 %Z
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/badarray.ll b/llvm/test/Transforms/ScalarRepl/badarray.ll
index a0017c4..6f5bc95 100644
--- a/llvm/test/Transforms/ScalarRepl/badarray.ll
+++ b/llvm/test/Transforms/ScalarRepl/badarray.ll
@@ -12,7 +12,7 @@
 	%X = alloca [4 x i32]
 	%Y = getelementptr [4 x i32], [4 x i32]* %X, i64 0, i64 6		; <i32*> [#uses=2]
 	store i32 0, i32* %Y
-	%Z = load i32* %Y		; <i32> [#uses=1]
+	%Z = load i32, i32* %Y		; <i32> [#uses=1]
 	ret i32 %Z
 }
 
@@ -24,7 +24,7 @@
 ; CHECK-NOT: = alloca
         %yx2.i = alloca float, align 4          ; <float*> [#uses=1]            
         %yx26.i = bitcast float* %yx2.i to i64*         ; <i64*> [#uses=1]      
-        %0 = load i64* %yx26.i, align 8         ; <i64> [#uses=0]               
+        %0 = load i64, i64* %yx26.i, align 8         ; <i64> [#uses=0]               
         unreachable
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/basictest.ll b/llvm/test/Transforms/ScalarRepl/basictest.ll
index 7f5d235..35d4d3b 100644
--- a/llvm/test/Transforms/ScalarRepl/basictest.ll
+++ b/llvm/test/Transforms/ScalarRepl/basictest.ll
@@ -5,7 +5,7 @@
 	%X = alloca { i32, float }		; <{ i32, float }*> [#uses=1]
 	%Y = getelementptr { i32, float }, { i32, float }* %X, i64 0, i32 0		; <i32*> [#uses=2]
 	store i32 0, i32* %Y
-	%Z = load i32* %Y		; <i32> [#uses=1]
+	%Z = load i32, i32* %Y		; <i32> [#uses=1]
 	ret i32 %Z
 ; CHECK-LABEL: @test1(
 ; CHECK-NOT: alloca
@@ -21,7 +21,7 @@
         br label %L2
         
 L2:
-	%Z = load i64* %B		; <i32> [#uses=1]
+	%Z = load i64, i64* %B		; <i32> [#uses=1]
 	ret i64 %Z
 ; CHECK-LABEL: @test2(
 ; CHECK-NOT: alloca
diff --git a/llvm/test/Transforms/ScalarRepl/bitfield-sroa.ll b/llvm/test/Transforms/ScalarRepl/bitfield-sroa.ll
index 07b522b..52986b0 100644
--- a/llvm/test/Transforms/ScalarRepl/bitfield-sroa.ll
+++ b/llvm/test/Transforms/ScalarRepl/bitfield-sroa.ll
@@ -9,9 +9,9 @@
         store i64 %A, i64* %tmp59172, align 8
         %C = getelementptr %t, %t* %ALL, i32 0, i32 0, i32 1             
         %D = bitcast i16* %C to i32*    
-        %E = load i32* %D, align 4     
+        %E = load i32, i32* %D, align 4     
         %F = bitcast %t* %ALL to i8* 
-        %G = load i8* %F, align 8 
+        %G = load i8, i8* %F, align 8 
 	ret i8 %G
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/copy-aggregate.ll b/llvm/test/Transforms/ScalarRepl/copy-aggregate.ll
index b464947..97977db 100644
--- a/llvm/test/Transforms/ScalarRepl/copy-aggregate.ll
+++ b/llvm/test/Transforms/ScalarRepl/copy-aggregate.ll
@@ -12,8 +12,8 @@
 
 	%A = getelementptr {{i32,i32}}, {{i32,i32}}* %X, i32 0, i32 0, i32 0
 	%B = getelementptr {{i32,i32}}, {{i32,i32}}* %X, i32 0, i32 0, i32 1
-	%a = load i32* %A
-	%b = load i32* %B
+	%a = load i32, i32* %A
+	%b = load i32, i32* %B
 	%c = add i32 %a, %b
 	ret i32 %c
 }
@@ -28,8 +28,8 @@
 
 	%A = getelementptr {[4 x float]}, {[4 x float]}* %X, i32 0, i32 0, i32 0
 	%B = getelementptr {[4 x float]}, {[4 x float]}* %X, i32 0, i32 0, i32 3
-	%a = load float* %A
-	%b = load float* %B
+	%a = load float, float* %A
+	%b = load float, float* %B
 	%c = fadd float %a, %b
 	ret float %c
 }
@@ -46,7 +46,7 @@
         store i32 %b, i32* %B
 
 	%Y = bitcast {{i32,i32}}* %X to i64*
-        %Z = load i64* %Y
+        %Z = load i64, i64* %Y
 	ret i64 %Z
 }
 
@@ -61,7 +61,7 @@
 	store float %b, float* %B
         
       	%Y = bitcast {[4 x float]}* %X to i128*
-	%V = load i128* %Y
+	%V = load i128, i128* %Y
 	ret i128 %V
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/crash.ll b/llvm/test/Transforms/ScalarRepl/crash.ll
index f0a50f8..72e9f09 100644
--- a/llvm/test/Transforms/ScalarRepl/crash.ll
+++ b/llvm/test/Transforms/ScalarRepl/crash.ll
@@ -11,7 +11,7 @@
   unreachable
 
 for.cond:                                         ; preds = %for.cond
-  %tmp1.i = load i32** %l_72, align 8
+  %tmp1.i = load i32*, i32** %l_72, align 8
   store i32* %tmp1.i, i32** %l_72, align 8
   br label %for.cond
 
@@ -30,7 +30,7 @@
         %X = alloca { [4 x i32] }               ; <{ [4 x i32] }*> [#uses=1]
         %Y = getelementptr { [4 x i32] }, { [4 x i32] }* %X, i64 0, i32 0, i64 2               ; <i32*> [#uses=2]
         store i32 4, i32* %Y
-        %Z = load i32* %Y               ; <i32> [#uses=1]
+        %Z = load i32, i32* %Y               ; <i32> [#uses=1]
         ret i32 %Z
 }
 
@@ -102,11 +102,11 @@
         ret void
 bb9875:         ; preds = %bb1365
         %source_ptr9884 = bitcast i8** %source_ptr to i8**              ; <i8**> [#uses=1]
-        %tmp9885 = load i8** %source_ptr9884            ; <i8*> [#uses=0]
+        %tmp9885 = load i8*, i8** %source_ptr9884            ; <i8*> [#uses=0]
         ret void
 bb10249:                ; preds = %bb1365
         %source_ptr10257 = bitcast i8** %source_ptr to i16**            ; <i16**> [#uses=1]
-        %tmp10258 = load i16** %source_ptr10257         ; <i16*> [#uses=0]
+        %tmp10258 = load i16*, i16** %source_ptr10257         ; <i16*> [#uses=0]
         ret void
 cond_next10377:         ; preds = %bb1365
         ret void
@@ -125,9 +125,9 @@
         %this_addr.i = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*                ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"**> [#uses=3]
         %tmp = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>", align 4                ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
         store %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i
-        %tmp.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i          ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
+        %tmp.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i          ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
         %tmp.i.upgrd.1 = bitcast %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp.i to %"struct.__gnu_cxx::bitmap_allocator<char>"*              ; <%"struct.__gnu_cxx::bitmap_allocator<char>"*> [#uses=0]
-        %tmp1.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i         ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
+        %tmp1.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i         ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
         %tmp.i.upgrd.2 = getelementptr %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>", %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp1.i, i32 0, i32 0         ; <%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"**> [#uses=0]
         unreachable
 }
@@ -161,7 +161,7 @@
         br i1 false, label %cond_next34, label %cond_next79
 
 cond_next34:            ; preds = %cond_next
-        %i.2.reload22 = load i32* null          ; <i32> [#uses=1]
+        %i.2.reload22 = load i32, i32* null          ; <i32> [#uses=1]
         %tmp51 = getelementptr %struct.aal_spanbucket_t, %struct.aal_spanbucket_t* %SB, i32 0, i32 2, i32 0, i32 0, i32 %i.2.reload22, i32 1      
         ; <i16*> [#uses=0]
         ret void
@@ -221,7 +221,7 @@
         %storetmp.i = bitcast %struct.singlebool* %a to i1*             ; <i1*> [#uses=1]
         store i1 true, i1* %storetmp.i
         %tmp = getelementptr %struct.singlebool, %struct.singlebool* %a, i64 0, i32 0               ; <i8*> [#uses=1]
-        %tmp1 = load i8* %tmp           ; <i8> [#uses=1]
+        %tmp1 = load i8, i8* %tmp           ; <i8> [#uses=1]
         ret i8 %tmp1
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/debuginfo-preserved.ll b/llvm/test/Transforms/ScalarRepl/debuginfo-preserved.ll
index b0c459e2..bb83185 100644
--- a/llvm/test/Transforms/ScalarRepl/debuginfo-preserved.ll
+++ b/llvm/test/Transforms/ScalarRepl/debuginfo-preserved.ll
@@ -21,18 +21,18 @@
   store i32 %b, i32* %b.addr, align 4
   call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !8, metadata !{}), !dbg !9
   call void @llvm.dbg.declare(metadata i32* %c, metadata !10, metadata !{}), !dbg !12
-  %tmp = load i32* %a.addr, align 4, !dbg !13
+  %tmp = load i32, i32* %a.addr, align 4, !dbg !13
   store i32 %tmp, i32* %c, align 4, !dbg !13
-  %tmp1 = load i32* %a.addr, align 4, !dbg !14
-  %tmp2 = load i32* %b.addr, align 4, !dbg !14
+  %tmp1 = load i32, i32* %a.addr, align 4, !dbg !14
+  %tmp2 = load i32, i32* %b.addr, align 4, !dbg !14
   %add = add nsw i32 %tmp1, %tmp2, !dbg !14
   store i32 %add, i32* %a.addr, align 4, !dbg !14
-  %tmp3 = load i32* %c, align 4, !dbg !15
-  %tmp4 = load i32* %b.addr, align 4, !dbg !15
+  %tmp3 = load i32, i32* %c, align 4, !dbg !15
+  %tmp4 = load i32, i32* %b.addr, align 4, !dbg !15
   %sub = sub nsw i32 %tmp3, %tmp4, !dbg !15
   store i32 %sub, i32* %b.addr, align 4, !dbg !15
-  %tmp5 = load i32* %a.addr, align 4, !dbg !16
-  %tmp6 = load i32* %b.addr, align 4, !dbg !16
+  %tmp5 = load i32, i32* %a.addr, align 4, !dbg !16
+  %tmp6 = load i32, i32* %b.addr, align 4, !dbg !16
   %add7 = add nsw i32 %tmp5, %tmp6, !dbg !16
   ret i32 %add7, !dbg !16
 }
diff --git a/llvm/test/Transforms/ScalarRepl/inline-vector.ll b/llvm/test/Transforms/ScalarRepl/inline-vector.ll
index d118be0..5d856c6 100644
--- a/llvm/test/Transforms/ScalarRepl/inline-vector.ll
+++ b/llvm/test/Transforms/ScalarRepl/inline-vector.ll
@@ -30,20 +30,20 @@
   %tmp3 = bitcast %struct.Vector4* %vector to i8*
   call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp2, i8* %tmp3, i32 16, i32 16, i1 false)
   %0 = bitcast %struct.Vector4* %agg.tmp to [2 x i64]*
-  %1 = load [2 x i64]* %0, align 16
+  %1 = load [2 x i64], [2 x i64]* %0, align 16
   %tmp2.i = extractvalue [2 x i64] %1, 0
   %tmp3.i = zext i64 %tmp2.i to i128
   %tmp10.i = bitcast i128 %tmp3.i to <4 x float>
   %sub.i.i = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %tmp10.i
   %2 = bitcast %struct.Vector4* %vector to <4 x float>*
   store <4 x float> %sub.i.i, <4 x float>* %2, align 16
-  %tmp4 = load i32* %i, align 4
+  %tmp4 = load i32, i32* %i, align 4
   %inc = add nsw i32 %tmp4, 1
   br label %for.cond
 
 for.end:                                          ; preds = %for.cond
   %x = getelementptr inbounds %struct.Vector4, %struct.Vector4* %vector, i32 0, i32 0
-  %tmp5 = load float* %x, align 16
+  %tmp5 = load float, float* %x, align 16
   %conv = fpext float %tmp5 to double
   %call = call i32 (...)* @printf(double %conv) nounwind
   ret void
diff --git a/llvm/test/Transforms/ScalarRepl/lifetime.ll b/llvm/test/Transforms/ScalarRepl/lifetime.ll
index b6627dd..c0ddfb5 100644
--- a/llvm/test/Transforms/ScalarRepl/lifetime.ll
+++ b/llvm/test/Transforms/ScalarRepl/lifetime.ll
@@ -30,7 +30,7 @@
   %B = bitcast i32* %A2 to i8*
   store i32 0, i32* %A2
   call void @llvm.lifetime.start(i64 -1, i8* %B)
-  %C = load i32* %A2
+  %C = load i32, i32* %A2
   ret void
 ; CHECK: ret void
 }
@@ -44,7 +44,7 @@
   %B = bitcast i32* %A2 to i8*
   store i32 0, i32* %A2
   call void @llvm.lifetime.start(i64 6, i8* %B)
-  %C = load i32* %A2
+  %C = load i32, i32* %A2
   ret void
 ; CHECK-NEXT: ret void
 }
@@ -58,7 +58,7 @@
   %B = bitcast i32* %A2 to i8*
   store i32 0, i32* %A2
   call void @llvm.lifetime.start(i64 1, i8* %B)
-  %C = load i32* %A2
+  %C = load i32, i32* %A2
   ret void
 ; CHECK-NEXT: ret void
 }
@@ -90,7 +90,7 @@
 ; CHECK: llvm.lifetime{{.*}}i64 1
 ; CHECK: llvm.lifetime{{.*}}i64 1
 ; CHECK: llvm.lifetime{{.*}}i64 1
-  %C = load i8* %A2
+  %C = load i8, i8* %A2
   ret void
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/load-store-aggregate.ll b/llvm/test/Transforms/ScalarRepl/load-store-aggregate.ll
index f414234..88299f3 100644
--- a/llvm/test/Transforms/ScalarRepl/load-store-aggregate.ll
+++ b/llvm/test/Transforms/ScalarRepl/load-store-aggregate.ll
@@ -11,11 +11,11 @@
 define i32 @test(%struct.foo* %P) {
 entry:
 	%L = alloca %struct.foo, align 8		; <%struct.foo*> [#uses=2]
-        %V = load %struct.foo* %P
+        %V = load %struct.foo, %struct.foo* %P
         store %struct.foo %V, %struct.foo* %L
 
 	%tmp4 = getelementptr %struct.foo, %struct.foo* %L, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp5 = load i32* %tmp4		; <i32> [#uses=1]
+	%tmp5 = load i32, i32* %tmp4		; <i32> [#uses=1]
 	ret i32 %tmp5
 }
 
@@ -26,6 +26,6 @@
         store i32 %A, i32* %L.0
         %L.1 = getelementptr %struct.foo, %struct.foo* %L, i32 0, i32 1
         store i32 %B, i32* %L.1
-        %V = load %struct.foo* %L
+        %V = load %struct.foo, %struct.foo* %L
         ret %struct.foo %V
 }
diff --git a/llvm/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll b/llvm/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll
index 7ab4666..e8088c1 100644
--- a/llvm/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll
+++ b/llvm/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll
@@ -15,7 +15,7 @@
 	%L2 = getelementptr %struct.foo, %struct.foo* %L, i32 0, i32 0		; <i8*> [#uses=2]
 	%tmp13 = getelementptr %struct.foo, %struct.foo* %P, i32 0, i32 0		; <i8*> [#uses=1]
 	call void @llvm.memcpy.p0i8.p0i8.i32( i8* %L2, i8* %tmp13, i32 2, i32 1, i1 false)
-	%tmp5 = load i8* %L2		; <i8> [#uses=1]
+	%tmp5 = load i8, i8* %L2		; <i8> [#uses=1]
 	%tmp56 = sext i8 %tmp5 to i32		; <i32> [#uses=1]
 	ret i32 %tmp56
 }
diff --git a/llvm/test/Transforms/ScalarRepl/memset-aggregate.ll b/llvm/test/Transforms/ScalarRepl/memset-aggregate.ll
index 981ace6..98e2ddd 100644
--- a/llvm/test/Transforms/ScalarRepl/memset-aggregate.ll
+++ b/llvm/test/Transforms/ScalarRepl/memset-aggregate.ll
@@ -16,7 +16,7 @@
 	%tmp13 = bitcast %struct.foo* %P to i8*		; <i8*> [#uses=1]
         call void @llvm.memcpy.p0i8.p0i8.i32(i8* %L2, i8* %tmp13, i32 8, i32 4, i1 false)
 	%tmp4 = getelementptr %struct.foo, %struct.foo* %L, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp5 = load i32* %tmp4		; <i32> [#uses=1]
+	%tmp5 = load i32, i32* %tmp4		; <i32> [#uses=1]
 	ret i32 %tmp5
 }
 
@@ -27,7 +27,7 @@
 	%L12 = bitcast [4 x %struct.foo]* %L to i8*		; <i8*> [#uses=1]
         call void @llvm.memset.p0i8.i32(i8* %L12, i8 0, i32 32, i32 16, i1 false)
 	%tmp4 = getelementptr [4 x %struct.foo], [4 x %struct.foo]* %L, i32 0, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp5 = load i32* %tmp4		; <i32> [#uses=1]
+	%tmp5 = load i32, i32* %tmp4		; <i32> [#uses=1]
 	ret i32 %tmp5
 }
 
@@ -42,7 +42,7 @@
 	%tmp4 = getelementptr %struct.bar, %struct.bar* %B, i32 0, i32 2		; <double*> [#uses=1]
 	store double 1.000000e+01, double* %tmp4
 	%tmp6 = getelementptr %struct.bar, %struct.bar* %B, i32 0, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp7 = load i32* %tmp6		; <i32> [#uses=1]
+	%tmp7 = load i32, i32* %tmp6		; <i32> [#uses=1]
 	ret i32 %tmp7
 }
 
@@ -58,7 +58,7 @@
 	%2 = bitcast i32* %1 to i8*		; <i8*> [#uses=1]
 	call void @llvm.memset.p0i8.i32(i8* %2, i8 2, i32 12, i32 4, i1 false)
 	%3 = getelementptr %struct.f, %struct.f* %A, i32 0, i32 2		; <i32*> [#uses=1]
-	%4 = load i32* %3, align 8		; <i32> [#uses=1]
+	%4 = load i32, i32* %3, align 8		; <i32> [#uses=1]
 	%retval12 = trunc i32 %4 to i16		; <i16> [#uses=1]
 	ret i16 %retval12
 }
diff --git a/llvm/test/Transforms/ScalarRepl/nonzero-first-index.ll b/llvm/test/Transforms/ScalarRepl/nonzero-first-index.ll
index 5de6eca..da757b0 100644
--- a/llvm/test/Transforms/ScalarRepl/nonzero-first-index.ll
+++ b/llvm/test/Transforms/ScalarRepl/nonzero-first-index.ll
@@ -14,7 +14,7 @@
 	%A = alloca %nested
 	%B = getelementptr %nested, %nested* %A, i32 0, i32 1, i32 0
 	%C = getelementptr i32, i32* %B, i32 2
-	%D = load i32* %C
+	%D = load i32, i32* %C
 	ret i32 %D
 }
 
@@ -25,7 +25,7 @@
 	%A = alloca %nested
 	%B = getelementptr %nested, %nested* %A, i32 0, i32 1, i32 0
 	%C = getelementptr i32, i32* %B, i32 4
-	%D = load i32* %C
+	%D = load i32, i32* %C
 	ret i32 %D
 }
 
@@ -37,7 +37,7 @@
 	%A = alloca %nested
 	%B = bitcast %nested* %A to i32*
 	%C = getelementptr i32, i32* %B, i32 2
-	%D = load i32* %C
+	%D = load i32, i32* %C
 	ret i32 %D
 }
 
@@ -48,6 +48,6 @@
 	%A = alloca %nested
 	%B = bitcast %nested* %A to i32*
 	%C = getelementptr i32, i32* %B, i32 -1
-	%D = load i32* %C
+	%D = load i32, i32* %C
 	ret i32 %D
 }
diff --git a/llvm/test/Transforms/ScalarRepl/not-a-vector.ll b/llvm/test/Transforms/ScalarRepl/not-a-vector.ll
index 8a4f2d4..04c1f93 100644
--- a/llvm/test/Transforms/ScalarRepl/not-a-vector.ll
+++ b/llvm/test/Transforms/ScalarRepl/not-a-vector.ll
@@ -13,7 +13,7 @@
 	store double %B, double* %E
 
 	%F = getelementptr double, double* %C, i32 4
-	%G = load double* %F
+	%G = load double, double* %F
 	ret double %G
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/phi-cycle.ll b/llvm/test/Transforms/ScalarRepl/phi-cycle.ll
index 13b7d4e..dd451b7 100644
--- a/llvm/test/Transforms/ScalarRepl/phi-cycle.ll
+++ b/llvm/test/Transforms/ScalarRepl/phi-cycle.ll
@@ -69,7 +69,7 @@
 ; CHECK-NOT: load
 ; CHECK: %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([6 x i8]* @.str, i64 0, i64 0), i32 %tmp) [[NUW:#[0-9]+]]
 func.exit:                                        ; preds = %while.body.i.func.exit_crit_edge, %while.cond.i.func.exit_crit_edge
-  %tmp3 = load i32* %x.i, align 4
+  %tmp3 = load i32, i32* %x.i, align 4
   %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([6 x i8]* @.str, i64 0, i64 0), i32 %tmp3) nounwind
   ret i32 0
 }
diff --git a/llvm/test/Transforms/ScalarRepl/phi-select.ll b/llvm/test/Transforms/ScalarRepl/phi-select.ll
index a17a5b1..a6c7135 100644
--- a/llvm/test/Transforms/ScalarRepl/phi-select.ll
+++ b/llvm/test/Transforms/ScalarRepl/phi-select.ll
@@ -20,7 +20,7 @@
   %2 = icmp eq i32 %x, 0                          ; <i1> [#uses=1]
   %p.0 = select i1 %2, %struct.X* %b, %struct.X* %a ; <%struct.X*> [#uses=1]
   %3 = getelementptr inbounds %struct.X, %struct.X* %p.0, i64 0, i32 0 ; <i32*> [#uses=1]
-  %4 = load i32* %3, align 8                      ; <i32> [#uses=1]
+  %4 = load i32, i32* %3, align 8                      ; <i32> [#uses=1]
   ret i32 %4
 }
 
@@ -39,7 +39,7 @@
   br label %F
 F:
   %X = phi i32* [%B, %entry], [%C, %T]
-  %Q = load i32* %X
+  %Q = load i32, i32* %X
   ret i32 %Q
 }
 
@@ -55,7 +55,7 @@
   store i32 2, i32* %C
   
   %X = select i1 %c, i32* %B, i32* %C
-  %Q = load i32* %X
+  %Q = load i32, i32* %X
   ret i32 %Q
 }
 
@@ -72,7 +72,7 @@
   
   %X = select i1 %c, i32* %B, i32* %C
   %Y = bitcast i32* %X to i64*
-  %Q = load i64* %Y
+  %Q = load i64, i64* %Y
   ret i64 %Q
 }
 
@@ -91,7 +91,7 @@
   %p.0 = select i1 false, i32* %b, i32* %P
   store i32 123, i32* %p.0
   
-  %r = load i32* %b, align 8
+  %r = load i32, i32* %b, align 8
   ret i32 %r
   
 ; CHECK-LABEL: @test5(
@@ -105,7 +105,7 @@
   store i32 1, i32* %a, align 8
   store i32 2, i32* %b, align 8
   %p.0 = select i1 %c, i32* %b, i32* %a
-  %r = load i32* %p.0, align 8
+  %r = load i32, i32* %p.0, align 8
   ret i32 %r
 ; CHECK-LABEL: @test6(
 ; CHECK-NEXT: %r = select i1 %c, i32 2, i32 1
@@ -122,7 +122,7 @@
   
   store i32 0, i32* %a
   
-  %r = load i32* %p.0, align 8
+  %r = load i32, i32* %p.0, align 8
   ret i32 %r
 ; CHECK-LABEL: @test7(
 ; CHECK-NOT: alloca i32
@@ -148,6 +148,6 @@
   br label %Cont
 Cont:
   %p.0 = phi i32* [%b, %entry],[%a, %T]
-  %r = load i32* %p.0, align 8
+  %r = load i32, i32* %p.0, align 8
   ret i32 %r
 }
diff --git a/llvm/test/Transforms/ScalarRepl/phinodepromote.ll b/llvm/test/Transforms/ScalarRepl/phinodepromote.ll
index 9c6e8b9..c3af624 100644
--- a/llvm/test/Transforms/ScalarRepl/phinodepromote.ll
+++ b/llvm/test/Transforms/ScalarRepl/phinodepromote.ll
@@ -21,14 +21,14 @@
 	%mem_tmp.1 = alloca i32		; <i32*> [#uses=3]
 	store i32 0, i32* %mem_tmp.0
 	store i32 1, i32* %mem_tmp.1
-	%tmp.1.i = load i32* %mem_tmp.1		; <i32> [#uses=1]
-	%tmp.3.i = load i32* %mem_tmp.0		; <i32> [#uses=1]
+	%tmp.1.i = load i32, i32* %mem_tmp.1		; <i32> [#uses=1]
+	%tmp.3.i = load i32, i32* %mem_tmp.0		; <i32> [#uses=1]
 	%tmp.4.i = icmp sle i32 %tmp.1.i, %tmp.3.i		; <i1> [#uses=1]
 	br i1 %tmp.4.i, label %cond_true.i, label %cond_continue.i
 cond_true.i:		; preds = %entry
 	br label %cond_continue.i
 cond_continue.i:		; preds = %cond_true.i, %entry
 	%mem_tmp.i.0 = phi i32* [ %mem_tmp.1, %cond_true.i ], [ %mem_tmp.0, %entry ]		; <i32*> [#uses=1]
-	%tmp.3 = load i32* %mem_tmp.i.0		; <i32> [#uses=1]
+	%tmp.3 = load i32, i32* %mem_tmp.i.0		; <i32> [#uses=1]
 	ret i32 %tmp.3
 }
diff --git a/llvm/test/Transforms/ScalarRepl/select_promote.ll b/llvm/test/Transforms/ScalarRepl/select_promote.ll
index d6b2b75..b4ef8c4 100644
--- a/llvm/test/Transforms/ScalarRepl/select_promote.ll
+++ b/llvm/test/Transforms/ScalarRepl/select_promote.ll
@@ -8,11 +8,11 @@
 	%mem_tmp.1 = alloca i32		; <i32*> [#uses=3]
 	store i32 0, i32* %mem_tmp.0
 	store i32 1, i32* %mem_tmp.1
-	%tmp.1.i = load i32* %mem_tmp.1		; <i32> [#uses=1]
-	%tmp.3.i = load i32* %mem_tmp.0		; <i32> [#uses=1]
+	%tmp.1.i = load i32, i32* %mem_tmp.1		; <i32> [#uses=1]
+	%tmp.3.i = load i32, i32* %mem_tmp.0		; <i32> [#uses=1]
 	%tmp.4.i = icmp sle i32 %tmp.1.i, %tmp.3.i		; <i1> [#uses=1]
 	%mem_tmp.i.0 = select i1 %tmp.4.i, i32* %mem_tmp.1, i32* %mem_tmp.0		; <i32*> [#uses=1]
-	%tmp.3 = load i32* %mem_tmp.i.0		; <i32> [#uses=1]
+	%tmp.3 = load i32, i32* %mem_tmp.i.0		; <i32> [#uses=1]
 	ret i32 %tmp.3
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/sroa-fca.ll b/llvm/test/Transforms/ScalarRepl/sroa-fca.ll
index 2df3b9b..c6e7c23 100644
--- a/llvm/test/Transforms/ScalarRepl/sroa-fca.ll
+++ b/llvm/test/Transforms/ScalarRepl/sroa-fca.ll
@@ -6,7 +6,7 @@
 	%Y = bitcast i64* %X to {i32,i32}*
 	store {i32,i32} %A, {i32,i32}* %Y
 	
-	%Q = load i64* %X
+	%Q = load i64, i64* %X
 	ret i64 %Q
 }
 
@@ -15,7 +15,7 @@
 	%Y = bitcast i64* %X to {i32,i32}*
 	store i64 %A, i64* %X
 	
-	%Q = load {i32,i32}* %Y
+	%Q = load {i32,i32}, {i32,i32}* %Y
 	ret {i32,i32} %Q
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/sroa_two.ll b/llvm/test/Transforms/ScalarRepl/sroa_two.ll
index 0ede5d2..f2285ef 100644
--- a/llvm/test/Transforms/ScalarRepl/sroa_two.ll
+++ b/llvm/test/Transforms/ScalarRepl/sroa_two.ll
@@ -7,7 +7,7 @@
 	%tmp.1 = getelementptr [2 x i32], [2 x i32]* %Arr, i32 0, i32 1		; <i32*> [#uses=1]
 	store i32 2, i32* %tmp.1
 	%tmp.3 = getelementptr [2 x i32], [2 x i32]* %Arr, i32 0, i32 %X		; <i32*> [#uses=1]
-	%tmp.4 = load i32* %tmp.3		; <i32> [#uses=1]
+	%tmp.4 = load i32, i32* %tmp.3		; <i32> [#uses=1]
 	ret i32 %tmp.4
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/union-fp-int.ll b/llvm/test/Transforms/ScalarRepl/union-fp-int.ll
index 6a49918..fa64b60 100644
--- a/llvm/test/Transforms/ScalarRepl/union-fp-int.ll
+++ b/llvm/test/Transforms/ScalarRepl/union-fp-int.ll
@@ -8,7 +8,7 @@
 	%X_addr = alloca float		; <float*> [#uses=2]
 	store float %X, float* %X_addr
 	%X_addr.upgrd.1 = bitcast float* %X_addr to i32*		; <i32*> [#uses=1]
-	%tmp = load i32* %X_addr.upgrd.1		; <i32> [#uses=1]
+	%tmp = load i32, i32* %X_addr.upgrd.1		; <i32> [#uses=1]
 	ret i32 %tmp
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/union-packed.ll b/llvm/test/Transforms/ScalarRepl/union-packed.ll
index b272abf..741de76 100644
--- a/llvm/test/Transforms/ScalarRepl/union-packed.ll
+++ b/llvm/test/Transforms/ScalarRepl/union-packed.ll
@@ -8,7 +8,7 @@
 	%X_addr = alloca <4 x float>		; <<4 x float>*> [#uses=2]
 	store <4 x float> %X, <4 x float>* %X_addr
 	%X_addr.upgrd.1 = bitcast <4 x float>* %X_addr to <4 x i32>*		; <<4 x i32>*> [#uses=1]
-	%tmp = load <4 x i32>* %X_addr.upgrd.1		; <<4 x i32>> [#uses=1]
+	%tmp = load <4 x i32>, <4 x i32>* %X_addr.upgrd.1		; <<4 x i32>> [#uses=1]
 	ret <4 x i32> %tmp
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/union-pointer.ll b/llvm/test/Transforms/ScalarRepl/union-pointer.ll
index 82a2c3b..6a5db1c 100644
--- a/llvm/test/Transforms/ScalarRepl/union-pointer.ll
+++ b/llvm/test/Transforms/ScalarRepl/union-pointer.ll
@@ -14,7 +14,7 @@
 	%X_addr = alloca i16*		; <i16**> [#uses=2]
 	store i16* %X, i16** %X_addr
 	%X_addr.upgrd.1 = bitcast i16** %X_addr to i8**		; <i8**> [#uses=1]
-	%tmp = load i8** %X_addr.upgrd.1		; <i8*> [#uses=1]
+	%tmp = load i8*, i8** %X_addr.upgrd.1		; <i8*> [#uses=1]
 	ret i8* %tmp
 }
 
@@ -26,7 +26,7 @@
     %x_addr = alloca i16 addrspace(1)*
 	store i16 addrspace(1)* %x, i16 addrspace(1)** %x_addr
 	%x_addr.upgrd.1 = bitcast i16 addrspace(1)** %x_addr to i8 addrspace(1)**
-	%tmp = load i8 addrspace(1)** %x_addr.upgrd.1
+	%tmp = load i8 addrspace(1)*, i8 addrspace(1)** %x_addr.upgrd.1
 	ret i8 addrspace(1)* %tmp
 }
 
@@ -39,7 +39,7 @@
   %elem1 = getelementptr [4 x i16 addrspace(1)*], [4 x i16 addrspace(1)*]* %as_ptr_array, i32 0, i32 1
   store i16 addrspace(1)* %x, i16 addrspace(1)** %elem1
   %elem1.cast = bitcast i16 addrspace(1)** %elem1 to i8 addrspace(1)**
-  %tmp = load i8 addrspace(1)** %elem1.cast
+  %tmp = load i8 addrspace(1)*, i8 addrspace(1)** %elem1.cast
   ret i8 addrspace(1)* %tmp
 }
 
@@ -56,15 +56,15 @@
 	store i64 %tmp.upgrd.2, i64* %tmp1.upgrd.3
 	%tmp.upgrd.4 = getelementptr %struct.Val, %struct.Val* %tmp, i32 0, i32 0		; <i32**> [#uses=1]
 	%tmp2 = getelementptr %struct.Val, %struct.Val* %tmp1, i32 0, i32 0		; <i32**> [#uses=1]
-	%tmp.upgrd.5 = load i32** %tmp2		; <i32*> [#uses=1]
+	%tmp.upgrd.5 = load i32*, i32** %tmp2		; <i32*> [#uses=1]
 	store i32* %tmp.upgrd.5, i32** %tmp.upgrd.4
 	%tmp3 = getelementptr %struct.Val, %struct.Val* %tmp, i32 0, i32 1		; <i32*> [#uses=1]
 	%tmp4 = getelementptr %struct.Val, %struct.Val* %tmp1, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp.upgrd.6 = load i32* %tmp4		; <i32> [#uses=1]
+	%tmp.upgrd.6 = load i32, i32* %tmp4		; <i32> [#uses=1]
 	store i32 %tmp.upgrd.6, i32* %tmp3
 	%tmp7 = bitcast %struct.Val* %tmp to { i64 }*		; <{ i64 }*> [#uses=1]
 	%tmp8 = getelementptr { i64 }, { i64 }* %tmp7, i32 0, i32 0		; <i64*> [#uses=1]
-	%tmp9 = load i64* %tmp8		; <i64> [#uses=1]
+	%tmp9 = load i64, i64* %tmp8		; <i64> [#uses=1]
 	call void @_Z3bar3ValS_( i64 %Op.0, i64 %tmp9 )
 	ret void
 }
diff --git a/llvm/test/Transforms/ScalarRepl/vector_memcpy.ll b/llvm/test/Transforms/ScalarRepl/vector_memcpy.ll
index dfba9e2..031ad5e 100644
--- a/llvm/test/Transforms/ScalarRepl/vector_memcpy.ll
+++ b/llvm/test/Transforms/ScalarRepl/vector_memcpy.ll
@@ -10,7 +10,7 @@
 	%s = bitcast <16 x float>* %tmp to i8*
 	%s2 = bitcast <16 x float>* %tmp2 to i8*
 	call void @llvm.memcpy.p0i8.p0i8.i64(i8* %s2, i8* %s, i64 64, i32 16, i1 false)
-	%R = load <16 x float>* %tmp2
+	%R = load <16 x float>, <16 x float>* %tmp2
 	ret <16 x float> %R
 }
 
@@ -20,7 +20,7 @@
 	%s2 = bitcast <16 x float>* %tmp2 to i8*
 	call void @llvm.memset.p0i8.i64(i8* %s2, i8 0, i64 64, i32 16, i1 false)
 	
-	%R = load <16 x float>* %tmp2
+	%R = load <16 x float>, <16 x float>* %tmp2
 	ret <16 x float> %R
 }
 
diff --git a/llvm/test/Transforms/ScalarRepl/vector_promote.ll b/llvm/test/Transforms/ScalarRepl/vector_promote.ll
index 3ee57b3..3c2377f 100644
--- a/llvm/test/Transforms/ScalarRepl/vector_promote.ll
+++ b/llvm/test/Transforms/ScalarRepl/vector_promote.ll
@@ -5,18 +5,18 @@
 define void @test1(<4 x float>* %F, float %f) {
 entry:
 	%G = alloca <4 x float>, align 16		; <<4 x float>*> [#uses=3]
-	%tmp = load <4 x float>* %F		; <<4 x float>> [#uses=2]
+	%tmp = load <4 x float>, <4 x float>* %F		; <<4 x float>> [#uses=2]
 	%tmp3 = fadd <4 x float> %tmp, %tmp		; <<4 x float>> [#uses=1]
 	store <4 x float> %tmp3, <4 x float>* %G
 	%G.upgrd.1 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 0		; <float*> [#uses=1]
 	store float %f, float* %G.upgrd.1
-	%tmp4 = load <4 x float>* %G		; <<4 x float>> [#uses=2]
+	%tmp4 = load <4 x float>, <4 x float>* %G		; <<4 x float>> [#uses=2]
 	%tmp6 = fadd <4 x float> %tmp4, %tmp4		; <<4 x float>> [#uses=1]
 	store <4 x float> %tmp6, <4 x float>* %F
 	ret void
 ; CHECK-LABEL: @test1(
 ; CHECK-NOT: alloca
-; CHECK: %tmp = load <4 x float>* %F
+; CHECK: %tmp = load <4 x float>, <4 x float>* %F
 ; CHECK: fadd <4 x float> %tmp, %tmp
 ; CHECK-NEXT: insertelement <4 x float> %tmp3, float %f, i32 0
 }
@@ -24,18 +24,18 @@
 define void @test2(<4 x float>* %F, float %f) {
 entry:
 	%G = alloca <4 x float>, align 16		; <<4 x float>*> [#uses=3]
-	%tmp = load <4 x float>* %F		; <<4 x float>> [#uses=2]
+	%tmp = load <4 x float>, <4 x float>* %F		; <<4 x float>> [#uses=2]
 	%tmp3 = fadd <4 x float> %tmp, %tmp		; <<4 x float>> [#uses=1]
 	store <4 x float> %tmp3, <4 x float>* %G
 	%tmp.upgrd.2 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 2		; <float*> [#uses=1]
 	store float %f, float* %tmp.upgrd.2
-	%tmp4 = load <4 x float>* %G		; <<4 x float>> [#uses=2]
+	%tmp4 = load <4 x float>, <4 x float>* %G		; <<4 x float>> [#uses=2]
 	%tmp6 = fadd <4 x float> %tmp4, %tmp4		; <<4 x float>> [#uses=1]
 	store <4 x float> %tmp6, <4 x float>* %F
 	ret void
 ; CHECK-LABEL: @test2(
 ; CHECK-NOT: alloca
-; CHECK: %tmp = load <4 x float>* %F
+; CHECK: %tmp = load <4 x float>, <4 x float>* %F
 ; CHECK: fadd <4 x float> %tmp, %tmp
 ; CHECK-NEXT: insertelement <4 x float> %tmp3, float %f, i32 2
 }
@@ -43,16 +43,16 @@
 define void @test3(<4 x float>* %F, float* %f) {
 entry:
 	%G = alloca <4 x float>, align 16		; <<4 x float>*> [#uses=2]
-	%tmp = load <4 x float>* %F		; <<4 x float>> [#uses=2]
+	%tmp = load <4 x float>, <4 x float>* %F		; <<4 x float>> [#uses=2]
 	%tmp3 = fadd <4 x float> %tmp, %tmp		; <<4 x float>> [#uses=1]
 	store <4 x float> %tmp3, <4 x float>* %G
 	%tmp.upgrd.3 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 2		; <float*> [#uses=1]
-	%tmp.upgrd.4 = load float* %tmp.upgrd.3		; <float> [#uses=1]
+	%tmp.upgrd.4 = load float, float* %tmp.upgrd.3		; <float> [#uses=1]
 	store float %tmp.upgrd.4, float* %f
 	ret void
 ; CHECK-LABEL: @test3(
 ; CHECK-NOT: alloca
-; CHECK: %tmp = load <4 x float>* %F
+; CHECK: %tmp = load <4 x float>, <4 x float>* %F
 ; CHECK: fadd <4 x float> %tmp, %tmp
 ; CHECK-NEXT: extractelement <4 x float> %tmp3, i32 2
 }
@@ -60,16 +60,16 @@
 define void @test4(<4 x float>* %F, float* %f) {
 entry:
 	%G = alloca <4 x float>, align 16		; <<4 x float>*> [#uses=2]
-	%tmp = load <4 x float>* %F		; <<4 x float>> [#uses=2]
+	%tmp = load <4 x float>, <4 x float>* %F		; <<4 x float>> [#uses=2]
 	%tmp3 = fadd <4 x float> %tmp, %tmp		; <<4 x float>> [#uses=1]
 	store <4 x float> %tmp3, <4 x float>* %G
 	%G.upgrd.5 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 0		; <float*> [#uses=1]
-	%tmp.upgrd.6 = load float* %G.upgrd.5		; <float> [#uses=1]
+	%tmp.upgrd.6 = load float, float* %G.upgrd.5		; <float> [#uses=1]
 	store float %tmp.upgrd.6, float* %f
 	ret void
 ; CHECK-LABEL: @test4(
 ; CHECK-NOT: alloca
-; CHECK: %tmp = load <4 x float>* %F
+; CHECK: %tmp = load <4 x float>, <4 x float>* %F
 ; CHECK: fadd <4 x float> %tmp, %tmp
 ; CHECK-NEXT: extractelement <4 x float> %tmp3, i32 0
 }
@@ -79,7 +79,7 @@
         %X1 = getelementptr [4 x float], [4 x float]* %X_addr, i32 0, i32 2
 	store float %X, float* %X1
 	%a = bitcast float* %X1 to i32*
-	%tmp = load i32* %a
+	%tmp = load i32, i32* %a
 	ret i32 %tmp
 ; CHECK-LABEL: @test5(
 ; CHECK-NEXT: bitcast float %X to i32
@@ -90,7 +90,7 @@
 	%X_addr = alloca <2 x float>
         store <2 x float> %X, <2 x float>* %X_addr
 	%P = bitcast <2 x float>* %X_addr to i64*
-	%tmp = load i64* %P
+	%tmp = load i64, i64* %P
 	ret i64 %tmp
 ; CHECK-LABEL: @test6(
 ; CHECK: bitcast <2 x float> %X to i64
@@ -121,14 +121,14 @@
   %__a = alloca <1 x i64>, align 8
   %tmp = alloca <1 x i64>, align 8
   store <1 x i64> %a, <1 x i64>* %a.addr, align 8
-  %0 = load <1 x i64>* %a.addr, align 8
+  %0 = load <1 x i64>, <1 x i64>* %a.addr, align 8
   store <1 x i64> %0, <1 x i64>* %__a, align 8
-  %1 = load <1 x i64>* %__a, align 8
+  %1 = load <1 x i64>, <1 x i64>* %__a, align 8
   %2 = bitcast <1 x i64> %1 to <8 x i8>
   %3 = bitcast <8 x i8> %2 to <1 x i64>
   %vshl_n = shl <1 x i64> %3, <i64 4>
   store <1 x i64> %vshl_n, <1 x i64>* %tmp
-  %4 = load <1 x i64>* %tmp
+  %4 = load <1 x i64>, <1 x i64>* %tmp
   ret <1 x i64> %4
 ; CHECK-LABEL: @test8(
 ; CHECK-NOT: alloca
diff --git a/llvm/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll b/llvm/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll
index c3fbdf5..1548831 100644
--- a/llvm/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll
+++ b/llvm/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll
@@ -18,10 +18,10 @@
 entry:
   %retval = alloca <3 x i32>, align 16
   %z = alloca <4 x i32>, align 16
-  %tmp = load <4 x i32>* %z
+  %tmp = load <4 x i32>, <4 x i32>* %z
   %tmp1 = shufflevector <4 x i32> %tmp, <4 x i32> undef, <3 x i32> <i32 0, i32 1, i32 2>
   store <3 x i32> %tmp1, <3 x i32>* %retval
   %0 = bitcast <3 x i32>* %retval to <2 x i64>*
-  %1 = load <2 x i64>* %0, align 1
+  %1 = load <2 x i64>, <2 x i64>* %0, align 1
   ret <2 x i64> %1
 }
diff --git a/llvm/test/Transforms/ScalarRepl/volatile.ll b/llvm/test/Transforms/ScalarRepl/volatile.ll
index 370a6d3..2a600b3 100644
--- a/llvm/test/Transforms/ScalarRepl/volatile.ll
+++ b/llvm/test/Transforms/ScalarRepl/volatile.ll
@@ -7,7 +7,7 @@
 ; CHECK: store volatile
 
 	%C = getelementptr {i32,i32}, {i32,i32}* %A, i32 0, i32 1
-	%X = load volatile i32* %C
+	%X = load volatile i32, i32* %C
 ; CHECK: load volatile
 	ret i32 %X
 }