[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/Inline/2006-07-12-InlinePruneCGUpdate.ll b/llvm/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
index 6934562..a0ddacd 100644
--- a/llvm/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
+++ b/llvm/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
@@ -214,7 +214,7 @@
 	br label %bb3
 
 bb3:		; preds = %bb, %entry
-	%tmp5 = load i8** null		; <i8*> [#uses=1]
+	%tmp5 = load i8*, i8** null		; <i8*> [#uses=1]
 	%tmp = icmp ne i8* null, %tmp5		; <i1> [#uses=1]
 	br i1 %tmp, label %cond_true, label %cond_false
 
diff --git a/llvm/test/Transforms/Inline/2009-01-08-NoInlineDynamicAlloca.ll b/llvm/test/Transforms/Inline/2009-01-08-NoInlineDynamicAlloca.ll
index db2a799..1bfb551 100644
--- a/llvm/test/Transforms/Inline/2009-01-08-NoInlineDynamicAlloca.ll
+++ b/llvm/test/Transforms/Inline/2009-01-08-NoInlineDynamicAlloca.ll
@@ -10,15 +10,15 @@
 	%p = alloca i8*		; <i8**> [#uses=2]
 	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
 	store i32 %i, i32* %i_addr
-	%0 = load i32* %i_addr, align 4		; <i32> [#uses=1]
+	%0 = load i32, i32* %i_addr, align 4		; <i32> [#uses=1]
 	%1 = alloca i8, i32 %0		; <i8*> [#uses=1]
 	store i8* %1, i8** %p, align 4
-	%2 = load i8** %p, align 4		; <i8*> [#uses=1]
+	%2 = load i8*, i8** %p, align 4		; <i8*> [#uses=1]
 	store i8* %2, i8** @q, align 4
 	br label %return
 
 return:		; preds = %entry
-	%retval1 = load i8** %retval		; <i8*> [#uses=1]
+	%retval1 = load i8*, i8** %retval		; <i8*> [#uses=1]
 	ret i8* %retval1
 }
 
@@ -27,7 +27,7 @@
 	%i_addr = alloca i32		; <i32*> [#uses=2]
 	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
 	store i32 %i, i32* %i_addr
-	%0 = load i32* %i_addr, align 4		; <i32> [#uses=1]
+	%0 = load i32, i32* %i_addr, align 4		; <i32> [#uses=1]
 	%1 = call i8* @a(i32 %0) nounwind		; <i8*> [#uses=0]
 	br label %return
 
diff --git a/llvm/test/Transforms/Inline/2009-01-13-RecursiveInlineCrash.ll b/llvm/test/Transforms/Inline/2009-01-13-RecursiveInlineCrash.ll
index c0fc691..8d8f20f 100644
--- a/llvm/test/Transforms/Inline/2009-01-13-RecursiveInlineCrash.ll
+++ b/llvm/test/Transforms/Inline/2009-01-13-RecursiveInlineCrash.ll
@@ -76,22 +76,22 @@
 
 bb:		; preds = %entry
 	%0 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 3		; <%struct.quad_struct**> [#uses=1]
-	%1 = load %struct.quad_struct** %0, align 4		; <%struct.quad_struct*> [#uses=1]
+	%1 = load %struct.quad_struct*, %struct.quad_struct** %0, align 4		; <%struct.quad_struct*> [#uses=1]
 	ret %struct.quad_struct* %1
 
 bb1:		; preds = %entry
 	%2 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 2		; <%struct.quad_struct**> [#uses=1]
-	%3 = load %struct.quad_struct** %2, align 4		; <%struct.quad_struct*> [#uses=1]
+	%3 = load %struct.quad_struct*, %struct.quad_struct** %2, align 4		; <%struct.quad_struct*> [#uses=1]
 	ret %struct.quad_struct* %3
 
 bb2:		; preds = %entry
 	%4 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 5		; <%struct.quad_struct**> [#uses=1]
-	%5 = load %struct.quad_struct** %4, align 4		; <%struct.quad_struct*> [#uses=1]
+	%5 = load %struct.quad_struct*, %struct.quad_struct** %4, align 4		; <%struct.quad_struct*> [#uses=1]
 	ret %struct.quad_struct* %5
 
 bb3:		; preds = %entry
 	%6 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 4		; <%struct.quad_struct**> [#uses=1]
-	%7 = load %struct.quad_struct** %6, align 4		; <%struct.quad_struct*> [#uses=1]
+	%7 = load %struct.quad_struct*, %struct.quad_struct** %6, align 4		; <%struct.quad_struct*> [#uses=1]
 	ret %struct.quad_struct* %7
 
 bb5:		; preds = %entry
@@ -101,9 +101,9 @@
 define internal fastcc %struct.quad_struct* @gtequal_adj_neighbor(%struct.quad_struct* nocapture %tree, i32 %d) nounwind readonly {
 entry:
 	%0 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 6		; <%struct.quad_struct**> [#uses=1]
-	%1 = load %struct.quad_struct** %0, align 4		; <%struct.quad_struct*> [#uses=4]
+	%1 = load %struct.quad_struct*, %struct.quad_struct** %0, align 4		; <%struct.quad_struct*> [#uses=4]
 	%2 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 1		; <i32*> [#uses=1]
-	%3 = load i32* %2, align 4		; <i32> [#uses=2]
+	%3 = load i32, i32* %2, align 4		; <i32> [#uses=2]
 	%4 = icmp eq %struct.quad_struct* %1, null		; <i1> [#uses=1]
 	br i1 %4, label %bb3, label %bb
 
@@ -123,7 +123,7 @@
 
 bb4:		; preds = %bb3
 	%9 = getelementptr %struct.quad_struct, %struct.quad_struct* %q.0, i32 0, i32 0		; <i32*> [#uses=1]
-	%10 = load i32* %9, align 4		; <i32> [#uses=1]
+	%10 = load i32, i32* %9, align 4		; <i32> [#uses=1]
 	%11 = icmp eq i32 %10, 2		; <i1> [#uses=1]
 	br i1 %11, label %bb5, label %bb7
 
@@ -141,27 +141,27 @@
 define i32 @perimeter(%struct.quad_struct* nocapture %tree, i32 %size) nounwind readonly {
 entry:
 	%0 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 0		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
+	%1 = load i32, i32* %0, align 4		; <i32> [#uses=1]
 	%2 = icmp eq i32 %1, 2		; <i1> [#uses=1]
 	br i1 %2, label %bb, label %bb2
 
 bb:		; preds = %entry
 	%3 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 4		; <%struct.quad_struct**> [#uses=1]
-	%4 = load %struct.quad_struct** %3, align 4		; <%struct.quad_struct*> [#uses=1]
+	%4 = load %struct.quad_struct*, %struct.quad_struct** %3, align 4		; <%struct.quad_struct*> [#uses=1]
 	%5 = sdiv i32 %size, 2		; <i32> [#uses=1]
 	%6 = call i32 @perimeter(%struct.quad_struct* %4, i32 %5) nounwind		; <i32> [#uses=1]
 	%7 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 5		; <%struct.quad_struct**> [#uses=1]
-	%8 = load %struct.quad_struct** %7, align 4		; <%struct.quad_struct*> [#uses=1]
+	%8 = load %struct.quad_struct*, %struct.quad_struct** %7, align 4		; <%struct.quad_struct*> [#uses=1]
 	%9 = sdiv i32 %size, 2		; <i32> [#uses=1]
 	%10 = call i32 @perimeter(%struct.quad_struct* %8, i32 %9) nounwind		; <i32> [#uses=1]
 	%11 = add i32 %10, %6		; <i32> [#uses=1]
 	%12 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 3		; <%struct.quad_struct**> [#uses=1]
-	%13 = load %struct.quad_struct** %12, align 4		; <%struct.quad_struct*> [#uses=1]
+	%13 = load %struct.quad_struct*, %struct.quad_struct** %12, align 4		; <%struct.quad_struct*> [#uses=1]
 	%14 = sdiv i32 %size, 2		; <i32> [#uses=1]
 	%15 = call i32 @perimeter(%struct.quad_struct* %13, i32 %14) nounwind		; <i32> [#uses=1]
 	%16 = add i32 %15, %11		; <i32> [#uses=1]
 	%17 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 2		; <%struct.quad_struct**> [#uses=1]
-	%18 = load %struct.quad_struct** %17, align 4		; <%struct.quad_struct*> [#uses=1]
+	%18 = load %struct.quad_struct*, %struct.quad_struct** %17, align 4		; <%struct.quad_struct*> [#uses=1]
 	%19 = sdiv i32 %size, 2		; <i32> [#uses=1]
 	%20 = call i32 @perimeter(%struct.quad_struct* %18, i32 %19) nounwind		; <i32> [#uses=1]
 	%21 = add i32 %20, %16		; <i32> [#uses=1]
@@ -169,7 +169,7 @@
 
 bb2:		; preds = %entry
 	%22 = getelementptr %struct.quad_struct, %struct.quad_struct* %tree, i32 0, i32 0		; <i32*> [#uses=1]
-	%23 = load i32* %22, align 4		; <i32> [#uses=1]
+	%23 = load i32, i32* %22, align 4		; <i32> [#uses=1]
 	%24 = icmp eq i32 %23, 0		; <i1> [#uses=1]
 	br i1 %24, label %bb3, label %bb23
 
@@ -180,13 +180,13 @@
 
 bb4:		; preds = %bb3
 	%27 = getelementptr %struct.quad_struct, %struct.quad_struct* %25, i32 0, i32 0		; <i32*> [#uses=1]
-	%28 = load i32* %27, align 4		; <i32> [#uses=1]
+	%28 = load i32, i32* %27, align 4		; <i32> [#uses=1]
 	%29 = icmp eq i32 %28, 1		; <i1> [#uses=1]
 	br i1 %29, label %bb8, label %bb6
 
 bb6:		; preds = %bb4
 	%30 = getelementptr %struct.quad_struct, %struct.quad_struct* %25, i32 0, i32 0		; <i32*> [#uses=1]
-	%31 = load i32* %30, align 4		; <i32> [#uses=1]
+	%31 = load i32, i32* %30, align 4		; <i32> [#uses=1]
 	%32 = icmp eq i32 %31, 2		; <i1> [#uses=1]
 	br i1 %32, label %bb7, label %bb8
 
@@ -202,7 +202,7 @@
 
 bb9:		; preds = %bb8
 	%36 = getelementptr %struct.quad_struct, %struct.quad_struct* %34, i32 0, i32 0		; <i32*> [#uses=1]
-	%37 = load i32* %36, align 4		; <i32> [#uses=1]
+	%37 = load i32, i32* %36, align 4		; <i32> [#uses=1]
 	%38 = icmp eq i32 %37, 1		; <i1> [#uses=1]
 	br i1 %38, label %bb10, label %bb11
 
@@ -212,7 +212,7 @@
 
 bb11:		; preds = %bb9
 	%40 = getelementptr %struct.quad_struct, %struct.quad_struct* %34, i32 0, i32 0		; <i32*> [#uses=1]
-	%41 = load i32* %40, align 4		; <i32> [#uses=1]
+	%41 = load i32, i32* %40, align 4		; <i32> [#uses=1]
 	%42 = icmp eq i32 %41, 2		; <i1> [#uses=1]
 	br i1 %42, label %bb12, label %bb13
 
@@ -229,7 +229,7 @@
 
 bb14:		; preds = %bb13
 	%47 = getelementptr %struct.quad_struct, %struct.quad_struct* %45, i32 0, i32 0		; <i32*> [#uses=1]
-	%48 = load i32* %47, align 4		; <i32> [#uses=1]
+	%48 = load i32, i32* %47, align 4		; <i32> [#uses=1]
 	%49 = icmp eq i32 %48, 1		; <i1> [#uses=1]
 	br i1 %49, label %bb15, label %bb16
 
@@ -239,7 +239,7 @@
 
 bb16:		; preds = %bb14
 	%51 = getelementptr %struct.quad_struct, %struct.quad_struct* %45, i32 0, i32 0		; <i32*> [#uses=1]
-	%52 = load i32* %51, align 4		; <i32> [#uses=1]
+	%52 = load i32, i32* %51, align 4		; <i32> [#uses=1]
 	%53 = icmp eq i32 %52, 2		; <i1> [#uses=1]
 	br i1 %53, label %bb17, label %bb18
 
@@ -256,7 +256,7 @@
 
 bb19:		; preds = %bb18
 	%58 = getelementptr %struct.quad_struct, %struct.quad_struct* %56, i32 0, i32 0		; <i32*> [#uses=1]
-	%59 = load i32* %58, align 4		; <i32> [#uses=1]
+	%59 = load i32, i32* %58, align 4		; <i32> [#uses=1]
 	%60 = icmp eq i32 %59, 1		; <i1> [#uses=1]
 	br i1 %60, label %bb20, label %bb21
 
@@ -266,7 +266,7 @@
 
 bb21:		; preds = %bb19
 	%62 = getelementptr %struct.quad_struct, %struct.quad_struct* %56, i32 0, i32 0		; <i32*> [#uses=1]
-	%63 = load i32* %62, align 4		; <i32> [#uses=1]
+	%63 = load i32, i32* %62, align 4		; <i32> [#uses=1]
 	%64 = icmp eq i32 %63, 2		; <i1> [#uses=1]
 	br i1 %64, label %bb22, label %bb23
 
diff --git a/llvm/test/Transforms/Inline/align.ll b/llvm/test/Transforms/Inline/align.ll
index 48e6b1b..c91fe80 100644
--- a/llvm/test/Transforms/Inline/align.ll
+++ b/llvm/test/Transforms/Inline/align.ll
@@ -4,7 +4,7 @@
 
 define void @hello(float* align 128 nocapture %a, float* nocapture readonly %c) #0 {
 entry:
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 5
   store float %0, float* %arrayidx, align 4
   ret void
@@ -13,7 +13,7 @@
 define void @foo(float* nocapture %a, float* nocapture readonly %c) #0 {
 entry:
   tail call void @hello(float* %a, float* %c)
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 7
   store float %0, float* %arrayidx, align 4
   ret void
@@ -25,10 +25,10 @@
 ; CHECK:   %maskedptr = and i64 %ptrint, 127
 ; CHECK:   %maskcond = icmp eq i64 %maskedptr, 0
 ; CHECK:   call void @llvm.assume(i1 %maskcond)
-; CHECK:   %0 = load float* %c, align 4
+; CHECK:   %0 = load float, float* %c, align 4
 ; CHECK:   %arrayidx.i = getelementptr inbounds float, float* %a, i64 5
 ; CHECK:   store float %0, float* %arrayidx.i, align 4
-; CHECK:   %1 = load float* %c, align 4
+; CHECK:   %1 = load float, float* %c, align 4
 ; CHECK:   %arrayidx = getelementptr inbounds float, float* %a, i64 7
 ; CHECK:   store float %1, float* %arrayidx, align 4
 ; CHECK:   ret void
@@ -37,7 +37,7 @@
 define void @fooa(float* nocapture align 128 %a, float* nocapture readonly %c) #0 {
 entry:
   tail call void @hello(float* %a, float* %c)
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 7
   store float %0, float* %arrayidx, align 4
   ret void
@@ -45,10 +45,10 @@
 
 ; CHECK: define void @fooa(float* nocapture align 128 %a, float* nocapture readonly %c) #0 {
 ; CHECK: entry:
-; CHECK:   %0 = load float* %c, align 4
+; CHECK:   %0 = load float, float* %c, align 4
 ; CHECK:   %arrayidx.i = getelementptr inbounds float, float* %a, i64 5
 ; CHECK:   store float %0, float* %arrayidx.i, align 4
-; CHECK:   %1 = load float* %c, align 4
+; CHECK:   %1 = load float, float* %c, align 4
 ; CHECK:   %arrayidx = getelementptr inbounds float, float* %a, i64 7
 ; CHECK:   store float %1, float* %arrayidx, align 4
 ; CHECK:   ret void
@@ -56,7 +56,7 @@
 
 define void @hello2(float* align 128 nocapture %a, float* align 128 nocapture %b, float* nocapture readonly %c) #0 {
 entry:
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 5
   store float %0, float* %arrayidx, align 4
   %arrayidx1 = getelementptr inbounds float, float* %b, i64 8
@@ -67,7 +67,7 @@
 define void @foo2(float* nocapture %a, float* nocapture %b, float* nocapture readonly %c) #0 {
 entry:
   tail call void @hello2(float* %a, float* %b, float* %c)
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 7
   store float %0, float* %arrayidx, align 4
   ret void
@@ -83,12 +83,12 @@
 ; CHECK:   %maskedptr2 = and i64 %ptrint1, 127
 ; CHECK:   %maskcond3 = icmp eq i64 %maskedptr2, 0
 ; CHECK:   call void @llvm.assume(i1 %maskcond3)
-; CHECK:   %0 = load float* %c, align 4
+; CHECK:   %0 = load float, float* %c, align 4
 ; CHECK:   %arrayidx.i = getelementptr inbounds float, float* %a, i64 5
 ; CHECK:   store float %0, float* %arrayidx.i, align 4
 ; CHECK:   %arrayidx1.i = getelementptr inbounds float, float* %b, i64 8
 ; CHECK:   store float %0, float* %arrayidx1.i, align 4
-; CHECK:   %1 = load float* %c, align 4
+; CHECK:   %1 = load float, float* %c, align 4
 ; CHECK:   %arrayidx = getelementptr inbounds float, float* %a, i64 7
 ; CHECK:   store float %1, float* %arrayidx, align 4
 ; CHECK:   ret void
diff --git a/llvm/test/Transforms/Inline/alloca-bonus.ll b/llvm/test/Transforms/Inline/alloca-bonus.ll
index bb654da..649fac9 100644
--- a/llvm/test/Transforms/Inline/alloca-bonus.ll
+++ b/llvm/test/Transforms/Inline/alloca-bonus.ll
@@ -15,7 +15,7 @@
 }
 
 define void @inner1(i32 *%ptr) {
-  %A = load i32* %ptr
+  %A = load i32, i32* %ptr
   store i32 0, i32* %ptr
   %C = getelementptr inbounds i32, i32* %ptr, i32 0
   %D = getelementptr inbounds i32, i32* %ptr, i32 1
@@ -35,7 +35,7 @@
 
 ; %D poisons this call, scalar-repl can't handle that instruction.
 define void @inner2(i32 *%ptr) {
-  %A = load i32* %ptr
+  %A = load i32, i32* %ptr
   store i32 0, i32* %ptr
   %C = getelementptr inbounds i32, i32* %ptr, i32 0
   %D = getelementptr inbounds i32, i32* %ptr, i32 %A
@@ -59,7 +59,7 @@
   br i1 %A, label %bb.true, label %bb.false
 bb.true:
   ; This block musn't be counted in the inline cost.
-  %t1 = load i32* %ptr
+  %t1 = load i32, i32* %ptr
   %t2 = add i32 %t1, 1
   %t3 = add i32 %t2, 1
   %t4 = add i32 %t3, 1
@@ -100,7 +100,7 @@
   br i1 %C, label %bb.true, label %bb.false
 bb.true:
   ; This block musn't be counted in the inline cost.
-  %t1 = load i32* %ptr
+  %t1 = load i32, i32* %ptr
   %t2 = add i32 %t1, 1
   %t3 = add i32 %t2, 1
   %t4 = add i32 %t3, 1
@@ -137,7 +137,7 @@
 ; the flag is set appropriately, the poisoning instruction is inside of dead
 ; code, and so shouldn't be counted.
 define void @inner5(i1 %flag, i32 *%ptr) {
-  %A = load i32* %ptr
+  %A = load i32, i32* %ptr
   store i32 0, i32* %ptr
   %C = getelementptr inbounds i32, i32* %ptr, i32 0
   br i1 %flag, label %if.then, label %exit
diff --git a/llvm/test/Transforms/Inline/alloca-dbgdeclare.ll b/llvm/test/Transforms/Inline/alloca-dbgdeclare.ll
index ea69868..03661a7 100644
--- a/llvm/test/Transforms/Inline/alloca-dbgdeclare.ll
+++ b/llvm/test/Transforms/Inline/alloca-dbgdeclare.ll
@@ -43,7 +43,7 @@
 ; CHECK-NEXT:   call void @llvm.dbg.declare(metadata [20 x i8]* %agg.tmp.sroa.3.i,
   %agg.tmp.sroa.3 = alloca [20 x i8], align 4
   tail call void @llvm.dbg.declare(metadata [20 x i8]* %agg.tmp.sroa.3, metadata !46, metadata !48), !dbg !49
-  %agg.tmp.sroa.0.0.copyload = load i32* getelementptr inbounds (%struct.A* @b, i64 0, i32 0), align 8, !dbg !50
+  %agg.tmp.sroa.0.0.copyload = load i32, i32* getelementptr inbounds (%struct.A* @b, i64 0, i32 0), align 8, !dbg !50
   tail call void @llvm.dbg.value(metadata i32 %agg.tmp.sroa.0.0.copyload, i64 0, metadata !46, metadata !51), !dbg !49
   %agg.tmp.sroa.3.0..sroa_idx = getelementptr inbounds [20 x i8], [20 x i8]* %agg.tmp.sroa.3, i64 0, i64 0, !dbg !50
   call void @llvm.memcpy.p0i8.p0i8.i64(i8* %agg.tmp.sroa.3.0..sroa_idx, i8* getelementptr (i8* bitcast (%struct.A* @b to i8*), i64 4), i64 20, i32 4, i1 false), !dbg !50
diff --git a/llvm/test/Transforms/Inline/alloca-merge-align-nodl.ll b/llvm/test/Transforms/Inline/alloca-merge-align-nodl.ll
index 85d26ac..d51c562 100644
--- a/llvm/test/Transforms/Inline/alloca-merge-align-nodl.ll
+++ b/llvm/test/Transforms/Inline/alloca-merge-align-nodl.ll
@@ -8,11 +8,11 @@
 entry:
   %x = alloca [2 x i32], align 4
   %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0
-  %0 = load i32* %a1, align 4
+  %0 = load i32, i32* %a1, align 4
   %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 0
   store i32 %0, i32* %arrayidx, align 4
   %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1
-  %1 = load i32* %b, align 4
+  %1 = load i32, i32* %b, align 4
   %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 1
   store i32 %1, i32* %arrayidx2, align 4
   call void @bar(i32* %arrayidx) #2
@@ -23,11 +23,11 @@
 entry:
   %x = alloca [2 x i32]
   %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0
-  %0 = load i32* %a1, align 4
+  %0 = load i32, i32* %a1, align 4
   %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 0
   store i32 %0, i32* %arrayidx, align 4
   %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1
-  %1 = load i32* %b, align 4
+  %1 = load i32, i32* %b, align 4
   %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 1
   store i32 %1, i32* %arrayidx2, align 4
   call void @bar(i32* %arrayidx) #2
@@ -40,11 +40,11 @@
 entry:
   %x = alloca [2 x i32], align 32
   %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0
-  %0 = load i32* %a1, align 4
+  %0 = load i32, i32* %a1, align 4
   %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 0
   store i32 %0, i32* %arrayidx, align 32
   %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1
-  %1 = load i32* %b, align 4
+  %1 = load i32, i32* %b, align 4
   %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 1
   store i32 %1, i32* %arrayidx2, align 4
   call void @bar(i32* %arrayidx) #2
diff --git a/llvm/test/Transforms/Inline/alloca-merge-align.ll b/llvm/test/Transforms/Inline/alloca-merge-align.ll
index 84fcffd..ef053a7 100644
--- a/llvm/test/Transforms/Inline/alloca-merge-align.ll
+++ b/llvm/test/Transforms/Inline/alloca-merge-align.ll
@@ -9,11 +9,11 @@
 entry:
   %x = alloca [2 x i32], align 4
   %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0
-  %0 = load i32* %a1, align 4
+  %0 = load i32, i32* %a1, align 4
   %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 0
   store i32 %0, i32* %arrayidx, align 4
   %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1
-  %1 = load i32* %b, align 4
+  %1 = load i32, i32* %b, align 4
   %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 1
   store i32 %1, i32* %arrayidx2, align 4
   call void @bar(i32* %arrayidx) #2
@@ -24,11 +24,11 @@
 entry:
   %x = alloca [2 x i32]
   %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0
-  %0 = load i32* %a1, align 4
+  %0 = load i32, i32* %a1, align 4
   %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 0
   store i32 %0, i32* %arrayidx, align 4
   %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1
-  %1 = load i32* %b, align 4
+  %1 = load i32, i32* %b, align 4
   %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 1
   store i32 %1, i32* %arrayidx2, align 4
   call void @bar(i32* %arrayidx) #2
@@ -39,11 +39,11 @@
 entry:
   %x = alloca [2 x i32], align 1
   %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0
-  %0 = load i32* %a1, align 4
+  %0 = load i32, i32* %a1, align 4
   %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 0
   store i32 %0, i32* %arrayidx, align 4
   %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1
-  %1 = load i32* %b, align 4
+  %1 = load i32, i32* %b, align 4
   %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 1
   store i32 %1, i32* %arrayidx2, align 4
   call void @bar(i32* %arrayidx) #2
@@ -56,11 +56,11 @@
 entry:
   %x = alloca [2 x i32], align 32
   %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0
-  %0 = load i32* %a1, align 4
+  %0 = load i32, i32* %a1, align 4
   %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 0
   store i32 %0, i32* %arrayidx, align 32
   %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1
-  %1 = load i32* %b, align 4
+  %1 = load i32, i32* %b, align 4
   %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 1
   store i32 %1, i32* %arrayidx2, align 4
   call void @bar(i32* %arrayidx) #2
diff --git a/llvm/test/Transforms/Inline/basictest.ll b/llvm/test/Transforms/Inline/basictest.ll
index a8dbf39..8f0b3ea 100644
--- a/llvm/test/Transforms/Inline/basictest.ll
+++ b/llvm/test/Transforms/Inline/basictest.ll
@@ -38,7 +38,7 @@
   
   %B = call %T* @test2f(i1 %cond, %T* %A)
   %C = getelementptr %T, %T* %B, i32 0, i32 0
-  %D = load i32* %C
+  %D = load i32, i32* %C
   ret i32 %D
   
 ; CHECK-LABEL: @test2(
diff --git a/llvm/test/Transforms/Inline/byval-tail-call.ll b/llvm/test/Transforms/Inline/byval-tail-call.ll
index 154f397..1e50463 100644
--- a/llvm/test/Transforms/Inline/byval-tail-call.ll
+++ b/llvm/test/Transforms/Inline/byval-tail-call.ll
@@ -31,7 +31,7 @@
 define void @frob(i32* %x) {
 ; CHECK-LABEL: define void @frob(
 ; CHECK: %[[POS:.*]] = alloca i32
-; CHECK: %[[VAL:.*]] = load i32* %x
+; CHECK: %[[VAL:.*]] = load i32, i32* %x
 ; CHECK: store i32 %[[VAL]], i32* %[[POS]]
 ; CHECK: {{^ *}}call void @ext(i32* %[[POS]]
 ; CHECK: tail call void @ext(i32* null)
diff --git a/llvm/test/Transforms/Inline/byval.ll b/llvm/test/Transforms/Inline/byval.ll
index 39bf1ff..b145566 100644
--- a/llvm/test/Transforms/Inline/byval.ll
+++ b/llvm/test/Transforms/Inline/byval.ll
@@ -8,7 +8,7 @@
 define internal void @f(%struct.ss* byval  %b) nounwind  {
 entry:
 	%tmp = getelementptr %struct.ss, %struct.ss* %b, i32 0, i32 0		; <i32*> [#uses=2]
-	%tmp1 = load i32* %tmp, align 4		; <i32> [#uses=1]
+	%tmp1 = load i32, i32* %tmp, align 4		; <i32> [#uses=1]
 	%tmp2 = add i32 %tmp1, 1		; <i32> [#uses=1]
 	store i32 %tmp2, i32* %tmp, align 4
 	ret void
@@ -38,7 +38,7 @@
 define internal i32 @f2(%struct.ss* byval  %b) nounwind readonly {
 entry:
 	%tmp = getelementptr %struct.ss, %struct.ss* %b, i32 0, i32 0		; <i32*> [#uses=2]
-	%tmp1 = load i32* %tmp, align 4		; <i32> [#uses=1]
+	%tmp1 = load i32, i32* %tmp, align 4		; <i32> [#uses=1]
 	%tmp2 = add i32 %tmp1, 1		; <i32> [#uses=1]
 	ret i32 %tmp2
 }
@@ -113,7 +113,7 @@
 entry:
 	store i32 0, i32* getelementptr inbounds (%struct.S0* @b, i64 0, i32 0), align 4
 	%f2 = getelementptr inbounds %struct.S0, %struct.S0* %p, i64 0, i32 0
-	%0 = load i32* %f2, align 4
+	%0 = load i32, i32* %f2, align 4
 	store i32 %0, i32* @a, align 4
 	ret void
 }
@@ -121,9 +121,9 @@
 define i32 @test5() {
 entry:
 	tail call void @f5(%struct.S0* byval align 4 @b)
-	%0 = load i32* @a, align 4
+	%0 = load i32, i32* @a, align 4
 	ret i32 %0
 ; CHECK: @test5()
 ; CHECK: store i32 0, i32* getelementptr inbounds (%struct.S0* @b, i64 0, i32 0), align 4
-; CHECK-NOT: load i32* getelementptr inbounds (%struct.S0* @b, i64 0, i32 0), align 4
+; CHECK-NOT: load i32, i32* getelementptr inbounds (%struct.S0* @b, i64 0, i32 0), align 4
 }
diff --git a/llvm/test/Transforms/Inline/byval_lifetime.ll b/llvm/test/Transforms/Inline/byval_lifetime.ll
index 6006685..b500eae 100644
--- a/llvm/test/Transforms/Inline/byval_lifetime.ll
+++ b/llvm/test/Transforms/Inline/byval_lifetime.ll
@@ -12,7 +12,7 @@
 entry:
   %a1 = getelementptr inbounds %struct.foo, %struct.foo* %f, i32 0, i32 1
   %arrayidx = getelementptr inbounds [16 x i32], [16 x i32]* %a1, i32 0, i32 %a
-  %tmp2 = load i32* %arrayidx, align 1
+  %tmp2 = load i32, i32* %arrayidx, align 1
   ret i32 %tmp2
 }
 
diff --git a/llvm/test/Transforms/Inline/crash2.ll b/llvm/test/Transforms/Inline/crash2.ll
index be634f6..4c0dfae 100644
--- a/llvm/test/Transforms/Inline/crash2.ll
+++ b/llvm/test/Transforms/Inline/crash2.ll
@@ -14,7 +14,7 @@
   %__f_addr = alloca void (i8*)*, align 8
   store void (i8*)* %__f, void (i8*)** %__f_addr
 
-  %0 = load void (i8*)** %__f_addr, align 8
+  %0 = load void (i8*)*, void (i8*)** %__f_addr, align 8
   call void %0(i8* undef)
   call i8* @f1(i8* undef) ssp
   unreachable
diff --git a/llvm/test/Transforms/Inline/devirtualize-3.ll b/llvm/test/Transforms/Inline/devirtualize-3.ll
index b496808..76c8150 100644
--- a/llvm/test/Transforms/Inline/devirtualize-3.ll
+++ b/llvm/test/Transforms/Inline/devirtualize-3.ll
@@ -17,7 +17,7 @@
   %tmp = getelementptr inbounds %struct.cont_t, %struct.cont_t* %cont, i32 0, i32 0 ; <void (i8*, i32)**> [#uses=1]
   %tmp1 = getelementptr inbounds %struct.cont_t, %struct.cont_t* %cont, i32 0, i32 0 ; <void (i8*, i32)**> [#uses=2]
   store void (i8*, i32)* bitcast (void (%struct.cont_t*, i32)* @quit to void (i8*, i32)*), void (i8*, i32)** %tmp1
-  %tmp2 = load void (i8*, i32)** %tmp1            ; <void (i8*, i32)*> [#uses=1]
+  %tmp2 = load void (i8*, i32)*, void (i8*, i32)** %tmp1            ; <void (i8*, i32)*> [#uses=1]
   store void (i8*, i32)* %tmp2, void (i8*, i32)** %tmp
   %tmp3 = getelementptr inbounds %struct.cont_t, %struct.cont_t* %cont, i32 0, i32 1 ; <i8**> [#uses=1]
   store i8* null, i8** %tmp3
@@ -51,14 +51,14 @@
 define internal void @foo2(%struct.foo_sf_t* %sf, i32 %y) nounwind ssp {
 entry:
   %tmp1 = getelementptr inbounds %struct.foo_sf_t, %struct.foo_sf_t* %sf, i32 0, i32 0 ; <%struct.cont_t**> [#uses=1]
-  %tmp2 = load %struct.cont_t** %tmp1             ; <%struct.cont_t*> [#uses=1]
+  %tmp2 = load %struct.cont_t*, %struct.cont_t** %tmp1             ; <%struct.cont_t*> [#uses=1]
   %tmp3 = getelementptr inbounds %struct.cont_t, %struct.cont_t* %tmp2, i32 0, i32 0 ; <void (i8*, i32)**> [#uses=1]
-  %tmp4 = load void (i8*, i32)** %tmp3            ; <void (i8*, i32)*> [#uses=1]
+  %tmp4 = load void (i8*, i32)*, void (i8*, i32)** %tmp3            ; <void (i8*, i32)*> [#uses=1]
   %tmp6 = getelementptr inbounds %struct.foo_sf_t, %struct.foo_sf_t* %sf, i32 0, i32 0 ; <%struct.cont_t**> [#uses=1]
-  %tmp7 = load %struct.cont_t** %tmp6             ; <%struct.cont_t*> [#uses=1]
+  %tmp7 = load %struct.cont_t*, %struct.cont_t** %tmp6             ; <%struct.cont_t*> [#uses=1]
   %conv = bitcast %struct.cont_t* %tmp7 to i8*    ; <i8*> [#uses=1]
   %tmp9 = getelementptr inbounds %struct.foo_sf_t, %struct.foo_sf_t* %sf, i32 0, i32 1 ; <i32*> [#uses=1]
-  %tmp10 = load i32* %tmp9                        ; <i32> [#uses=1]
+  %tmp10 = load i32, i32* %tmp9                        ; <i32> [#uses=1]
   %mul = mul i32 %tmp10, %y                       ; <i32> [#uses=1]
   call void %tmp4(i8* %conv, i32 %mul)
   ret void
@@ -67,9 +67,9 @@
 define internal void @bar(%struct.cont_t* %c, i32 %y) nounwind ssp {
 entry:
   %tmp1 = getelementptr inbounds %struct.cont_t, %struct.cont_t* %c, i32 0, i32 0 ; <void (i8*, i32)**> [#uses=1]
-  %tmp2 = load void (i8*, i32)** %tmp1            ; <void (i8*, i32)*> [#uses=1]
+  %tmp2 = load void (i8*, i32)*, void (i8*, i32)** %tmp1            ; <void (i8*, i32)*> [#uses=1]
   %tmp4 = getelementptr inbounds %struct.cont_t, %struct.cont_t* %c, i32 0, i32 1 ; <i8**> [#uses=1]
-  %tmp5 = load i8** %tmp4                         ; <i8*> [#uses=1]
+  %tmp5 = load i8*, i8** %tmp4                         ; <i8*> [#uses=1]
   %add = add nsw i32 %y, 5                        ; <i32> [#uses=1]
   call void %tmp2(i8* %tmp5, i32 %add)
   ret void
diff --git a/llvm/test/Transforms/Inline/devirtualize.ll b/llvm/test/Transforms/Inline/devirtualize.ll
index c009e02..320071f 100644
--- a/llvm/test/Transforms/Inline/devirtualize.ll
+++ b/llvm/test/Transforms/Inline/devirtualize.ll
@@ -9,7 +9,7 @@
 entry:
   store i32 ()* @bar, i32 ()** %p
   store i64 0, i64* %q
-  %tmp3 = load i32 ()** %p                        ; <i32 ()*> [#uses=1]
+  %tmp3 = load i32 ()*, i32 ()** %p                        ; <i32 ()*> [#uses=1]
   %call = call i32 %tmp3()                        ; <i32> [#uses=1]
   %X = add i32 %call, 4
   ret i32 %X
@@ -85,9 +85,9 @@
 cast.end:                                         ; preds = %entry, %cast.notnull
   %3 = phi %struct.A* [ %2, %cast.notnull ], [ null, %entry ] ; <%struct.A*> [#uses=2]
   %4 = bitcast %struct.A* %3 to i32 (%struct.A*)*** ; <i32 (%struct.A*)***> [#uses=1]
-  %5 = load i32 (%struct.A*)*** %4                ; <i32 (%struct.A*)**> [#uses=1]
+  %5 = load i32 (%struct.A*)**, i32 (%struct.A*)*** %4                ; <i32 (%struct.A*)**> [#uses=1]
   %vfn = getelementptr inbounds i32 (%struct.A*)*, i32 (%struct.A*)** %5, i64 0 ; <i32 (%struct.A*)**> [#uses=1]
-  %6 = load i32 (%struct.A*)** %vfn               ; <i32 (%struct.A*)*> [#uses=1]
+  %6 = load i32 (%struct.A*)*, i32 (%struct.A*)** %vfn               ; <i32 (%struct.A*)*> [#uses=1]
   %call = call i32 %6(%struct.A* %3)              ; <i32> [#uses=1]
   ret i32 %call
 }
diff --git a/llvm/test/Transforms/Inline/ephemeral.ll b/llvm/test/Transforms/Inline/ephemeral.ll
index d1135c6..7e5ae03 100644
--- a/llvm/test/Transforms/Inline/ephemeral.ll
+++ b/llvm/test/Transforms/Inline/ephemeral.ll
@@ -3,7 +3,7 @@
 @a = global i32 4
 
 define i1 @inner() {
-  %a1 = load volatile i32* @a
+  %a1 = load volatile i32, i32* @a
   %x1 = add i32 %a1, %a1
   %c = icmp eq i32 %x1, 0
 
diff --git a/llvm/test/Transforms/Inline/gvn-inline-iteration.ll b/llvm/test/Transforms/Inline/gvn-inline-iteration.ll
index 7916a13..b87c060 100644
--- a/llvm/test/Transforms/Inline/gvn-inline-iteration.ll
+++ b/llvm/test/Transforms/Inline/gvn-inline-iteration.ll
@@ -8,7 +8,7 @@
 entry:
   store i32 ()* @bar, i32 ()** %p
   store i64 0, i64* %q
-  %tmp3 = load i32 ()** %p                        ; <i32 ()*> [#uses=1]
+  %tmp3 = load i32 ()*, i32 ()** %p                        ; <i32 ()*> [#uses=1]
   %call = tail call i32 %tmp3() nounwind          ; <i32> [#uses=1]
   ret i32 %call
 }
diff --git a/llvm/test/Transforms/Inline/inline-byval-bonus.ll b/llvm/test/Transforms/Inline/inline-byval-bonus.ll
index 966bce8..7f0c0e1 100644
--- a/llvm/test/Transforms/Inline/inline-byval-bonus.ll
+++ b/llvm/test/Transforms/Inline/inline-byval-bonus.ll
@@ -30,36 +30,36 @@
 
 define i32 @ray_sphere(%struct.sphere* nocapture %sph, %struct.ray* nocapture byval align 8 %ray, %struct.spoint* %sp) nounwind uwtable ssp {
   %1 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 1, i32 0
-  %2 = load double* %1, align 8
+  %2 = load double, double* %1, align 8
   %3 = fmul double %2, %2
   %4 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 1, i32 1
-  %5 = load double* %4, align 8
+  %5 = load double, double* %4, align 8
   %6 = fmul double %5, %5
   %7 = fadd double %3, %6
   %8 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 1, i32 2
-  %9 = load double* %8, align 8
+  %9 = load double, double* %8, align 8
   %10 = fmul double %9, %9
   %11 = fadd double %7, %10
   %12 = fmul double %2, 2.000000e+00
   %13 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 0, i32 0
-  %14 = load double* %13, align 8
+  %14 = load double, double* %13, align 8
   %15 = getelementptr inbounds %struct.sphere, %struct.sphere* %sph, i64 0, i32 0, i32 0
-  %16 = load double* %15, align 8
+  %16 = load double, double* %15, align 8
   %17 = fsub double %14, %16
   %18 = fmul double %12, %17
   %19 = fmul double %5, 2.000000e+00
   %20 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 0, i32 1
-  %21 = load double* %20, align 8
+  %21 = load double, double* %20, align 8
   %22 = getelementptr inbounds %struct.sphere, %struct.sphere* %sph, i64 0, i32 0, i32 1
-  %23 = load double* %22, align 8
+  %23 = load double, double* %22, align 8
   %24 = fsub double %21, %23
   %25 = fmul double %19, %24
   %26 = fadd double %18, %25
   %27 = fmul double %9, 2.000000e+00
   %28 = getelementptr inbounds %struct.ray, %struct.ray* %ray, i64 0, i32 0, i32 2
-  %29 = load double* %28, align 8
+  %29 = load double, double* %28, align 8
   %30 = getelementptr inbounds %struct.sphere, %struct.sphere* %sph, i64 0, i32 0, i32 2
-  %31 = load double* %30, align 8
+  %31 = load double, double* %30, align 8
   %32 = fsub double %29, %31
   %33 = fmul double %27, %32
   %34 = fadd double %26, %33
@@ -83,7 +83,7 @@
   %52 = fmul double %51, 2.000000e+00
   %53 = fadd double %52, %45
   %54 = getelementptr inbounds %struct.sphere, %struct.sphere* %sph, i64 0, i32 1
-  %55 = load double* %54, align 8
+  %55 = load double, double* %54, align 8
   %56 = fmul double %55, %55
   %57 = fsub double %53, %56
   %58 = fmul double %34, %34
@@ -135,21 +135,21 @@
   %89 = fadd double %29, %88
   %90 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 0, i32 2
   store double %89, double* %90, align 8
-  %91 = load double* %15, align 8
+  %91 = load double, double* %15, align 8
   %92 = fsub double %83, %91
-  %93 = load double* %54, align 8
+  %93 = load double, double* %54, align 8
   %94 = fdiv double %92, %93
   %95 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 1, i32 0
   store double %94, double* %95, align 8
-  %96 = load double* %22, align 8
+  %96 = load double, double* %22, align 8
   %97 = fsub double %86, %96
-  %98 = load double* %54, align 8
+  %98 = load double, double* %54, align 8
   %99 = fdiv double %97, %98
   %100 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 1, i32 1
   store double %99, double* %100, align 8
-  %101 = load double* %30, align 8
+  %101 = load double, double* %30, align 8
   %102 = fsub double %89, %101
-  %103 = load double* %54, align 8
+  %103 = load double, double* %54, align 8
   %104 = fdiv double %102, %103
   %105 = getelementptr inbounds %struct.spoint, %struct.spoint* %sp, i64 0, i32 1, i32 2
   store double %104, double* %105, align 8
diff --git a/llvm/test/Transforms/Inline/inline-cold.ll b/llvm/test/Transforms/Inline/inline-cold.ll
index 5743377..b3c1345 100644
--- a/llvm/test/Transforms/Inline/inline-cold.ll
+++ b/llvm/test/Transforms/Inline/inline-cold.ll
@@ -17,29 +17,29 @@
 ; Function Attrs: nounwind readnone uwtable
 define i32 @simpleFunction(i32 %a) #0 {
 entry:
-  %a1 = load volatile i32* @a
+  %a1 = load volatile i32, i32* @a
   %x1 = add i32 %a1,  %a1
-  %a2 = load volatile i32* @a
+  %a2 = load volatile i32, i32* @a
   %x2 = add i32 %x1, %a2
-  %a3 = load volatile i32* @a
+  %a3 = load volatile i32, i32* @a
   %x3 = add i32 %x2, %a3
-  %a4 = load volatile i32* @a
+  %a4 = load volatile i32, i32* @a
   %x4 = add i32 %x3, %a4
-  %a5 = load volatile i32* @a
+  %a5 = load volatile i32, i32* @a
   %x5 = add i32 %x4, %a5
-  %a6 = load volatile i32* @a
+  %a6 = load volatile i32, i32* @a
   %x6 = add i32 %x5, %a6
-  %a7 = load volatile i32* @a
+  %a7 = load volatile i32, i32* @a
   %x7 = add i32 %x6, %a6
-  %a8 = load volatile i32* @a
+  %a8 = load volatile i32, i32* @a
   %x8 = add i32 %x7, %a8
-  %a9 = load volatile i32* @a
+  %a9 = load volatile i32, i32* @a
   %x9 = add i32 %x8, %a9
-  %a10 = load volatile i32* @a
+  %a10 = load volatile i32, i32* @a
   %x10 = add i32 %x9, %a10
-  %a11 = load volatile i32* @a
+  %a11 = load volatile i32, i32* @a
   %x11 = add i32 %x10, %a11
-  %a12 = load volatile i32* @a
+  %a12 = load volatile i32, i32* @a
   %x12 = add i32 %x11, %a12
   %add = add i32 %x12, %a
   ret i32 %add
@@ -54,29 +54,29 @@
 ; DEFAULT-LABEL: @ColdFunction
 ; DEFAULT: ret
 entry:
-  %a1 = load volatile i32* @a
+  %a1 = load volatile i32, i32* @a
   %x1 = add i32 %a1,  %a1
-  %a2 = load volatile i32* @a
+  %a2 = load volatile i32, i32* @a
   %x2 = add i32 %x1, %a2
-  %a3 = load volatile i32* @a
+  %a3 = load volatile i32, i32* @a
   %x3 = add i32 %x2, %a3
-  %a4 = load volatile i32* @a
+  %a4 = load volatile i32, i32* @a
   %x4 = add i32 %x3, %a4
-  %a5 = load volatile i32* @a
+  %a5 = load volatile i32, i32* @a
   %x5 = add i32 %x4, %a5
-  %a6 = load volatile i32* @a
+  %a6 = load volatile i32, i32* @a
   %x6 = add i32 %x5, %a6
-  %a7 = load volatile i32* @a
+  %a7 = load volatile i32, i32* @a
   %x7 = add i32 %x6, %a6
-  %a8 = load volatile i32* @a
+  %a8 = load volatile i32, i32* @a
   %x8 = add i32 %x7, %a8
-  %a9 = load volatile i32* @a
+  %a9 = load volatile i32, i32* @a
   %x9 = add i32 %x8, %a9
-  %a10 = load volatile i32* @a
+  %a10 = load volatile i32, i32* @a
   %x10 = add i32 %x9, %a10
-  %a11 = load volatile i32* @a
+  %a11 = load volatile i32, i32* @a
   %x11 = add i32 %x10, %a11
-  %a12 = load volatile i32* @a
+  %a12 = load volatile i32, i32* @a
   %x12 = add i32 %x11, %a12
   %add = add i32 %x12, %a
   ret i32 %add
@@ -91,79 +91,79 @@
 ; DEFAULT-LABEL: @ColdFunction2
 ; DEFAULT: ret
 entry:
-  %a1 = load volatile i32* @a
+  %a1 = load volatile i32, i32* @a
   %x1 = add i32 %a1,  %a1
-  %a2 = load volatile i32* @a
+  %a2 = load volatile i32, i32* @a
   %x2 = add i32 %x1, %a2
-  %a3 = load volatile i32* @a
+  %a3 = load volatile i32, i32* @a
   %x3 = add i32 %x2, %a3
-  %a4 = load volatile i32* @a
+  %a4 = load volatile i32, i32* @a
   %x4 = add i32 %x3, %a4
-  %a5 = load volatile i32* @a
+  %a5 = load volatile i32, i32* @a
   %x5 = add i32 %x4, %a5
-  %a6 = load volatile i32* @a
+  %a6 = load volatile i32, i32* @a
   %x6 = add i32 %x5, %a6
-  %a7 = load volatile i32* @a
+  %a7 = load volatile i32, i32* @a
   %x7 = add i32 %x6, %a7
-  %a8 = load volatile i32* @a
+  %a8 = load volatile i32, i32* @a
   %x8 = add i32 %x7, %a8
-  %a9 = load volatile i32* @a
+  %a9 = load volatile i32, i32* @a
   %x9 = add i32 %x8, %a9
-  %a10 = load volatile i32* @a
+  %a10 = load volatile i32, i32* @a
   %x10 = add i32 %x9, %a10
-  %a11 = load volatile i32* @a
+  %a11 = load volatile i32, i32* @a
   %x11 = add i32 %x10, %a11
-  %a12 = load volatile i32* @a
+  %a12 = load volatile i32, i32* @a
   %x12 = add i32 %x11, %a12
 
-  %a21 = load volatile i32* @a
+  %a21 = load volatile i32, i32* @a
   %x21 = add i32 %x12, %a21
-  %a22 = load volatile i32* @a
+  %a22 = load volatile i32, i32* @a
   %x22 = add i32 %x21, %a22
-  %a23 = load volatile i32* @a
+  %a23 = load volatile i32, i32* @a
   %x23 = add i32 %x22, %a23
-  %a24 = load volatile i32* @a
+  %a24 = load volatile i32, i32* @a
   %x24 = add i32 %x23, %a24
-  %a25 = load volatile i32* @a
+  %a25 = load volatile i32, i32* @a
   %x25 = add i32 %x24, %a25
-  %a26 = load volatile i32* @a
+  %a26 = load volatile i32, i32* @a
   %x26 = add i32 %x25, %a26
-  %a27 = load volatile i32* @a
+  %a27 = load volatile i32, i32* @a
   %x27 = add i32 %x26, %a27
-  %a28 = load volatile i32* @a
+  %a28 = load volatile i32, i32* @a
   %x28 = add i32 %x27, %a28
-  %a29 = load volatile i32* @a
+  %a29 = load volatile i32, i32* @a
   %x29 = add i32 %x28, %a29
-  %a30 = load volatile i32* @a
+  %a30 = load volatile i32, i32* @a
   %x30 = add i32 %x29, %a30
-  %a31 = load volatile i32* @a
+  %a31 = load volatile i32, i32* @a
   %x31 = add i32 %x30, %a31
-  %a32 = load volatile i32* @a
+  %a32 = load volatile i32, i32* @a
   %x32 = add i32 %x31, %a32
 
-  %a41 = load volatile i32* @a
+  %a41 = load volatile i32, i32* @a
   %x41 = add i32 %x32, %a41
-  %a42 = load volatile i32* @a
+  %a42 = load volatile i32, i32* @a
   %x42 = add i32 %x41, %a42
-  %a43 = load volatile i32* @a
+  %a43 = load volatile i32, i32* @a
   %x43 = add i32 %x42, %a43
-  %a44 = load volatile i32* @a
+  %a44 = load volatile i32, i32* @a
   %x44 = add i32 %x43, %a44
-  %a45 = load volatile i32* @a
+  %a45 = load volatile i32, i32* @a
   %x45 = add i32 %x44, %a45
-  %a46 = load volatile i32* @a
+  %a46 = load volatile i32, i32* @a
   %x46 = add i32 %x45, %a46
-  %a47 = load volatile i32* @a
+  %a47 = load volatile i32, i32* @a
   %x47 = add i32 %x46, %a47
-  %a48 = load volatile i32* @a
+  %a48 = load volatile i32, i32* @a
   %x48 = add i32 %x47, %a48
-  %a49 = load volatile i32* @a
+  %a49 = load volatile i32, i32* @a
   %x49 = add i32 %x48, %a49
-  %a50 = load volatile i32* @a
+  %a50 = load volatile i32, i32* @a
   %x50 = add i32 %x49, %a50
-  %a51 = load volatile i32* @a
+  %a51 = load volatile i32, i32* @a
   %x51 = add i32 %x50, %a51
-  %a52 = load volatile i32* @a
+  %a52 = load volatile i32, i32* @a
   %x52 = add i32 %x51, %a52
 
   %add = add i32 %x52, %a
diff --git a/llvm/test/Transforms/Inline/inline-fast-math-flags.ll b/llvm/test/Transforms/Inline/inline-fast-math-flags.ll
index 01074f5..e5ff8f7 100644
--- a/llvm/test/Transforms/Inline/inline-fast-math-flags.ll
+++ b/llvm/test/Transforms/Inline/inline-fast-math-flags.ll
@@ -8,15 +8,15 @@
 
 define float @foo(float* %a, float %b) {
 entry:
-  %a0 = load float* %a, align 4
+  %a0 = load float, float* %a, align 4
   %mul = fmul fast float %a0, %b
   %tobool = fcmp une float %mul, 0.000000e+00
   br i1 %tobool, label %if.then, label %if.end
 
 if.then:                                          ; preds = %entry
-  %a1 = load float* %a, align 8
+  %a1 = load float, float* %a, align 8
   %arrayidx1 = getelementptr inbounds float, float* %a, i64 1
-  %a2 = load float* %arrayidx1, align 4
+  %a2 = load float, float* %arrayidx1, align 4
   %add = fadd fast float %a1, %a2
   br label %if.end
 
diff --git a/llvm/test/Transforms/Inline/inline-fp.ll b/llvm/test/Transforms/Inline/inline-fp.ll
index 4d18ce8..cf42d82 100644
--- a/llvm/test/Transforms/Inline/inline-fp.ll
+++ b/llvm/test/Transforms/Inline/inline-fp.ll
@@ -18,19 +18,19 @@
   call void @getY(i32* %responseY, i8* %valueY)
   call void @getZ(i32* %responseZ, i8* %valueZ)
 
-  %0 = load i32* %responseX
-  %1 = load i8* %valueX
+  %0 = load i32, i32* %responseX
+  %1 = load i8, i8* %valueX
   %call = call float @f_nofp(i32 %0, i8 zeroext %1)
-  %2 = load i32* %responseZ
-  %3 = load i8* %valueZ
+  %2 = load i32, i32* %responseZ
+  %3 = load i8, i8* %valueZ
   %call2 = call float @f_nofp(i32 %2, i8 zeroext %3)
   %call3 = call float @fabsf(float %call)
   %cmp = fcmp ogt float %call3, 0x3FC1EB8520000000
   br i1 %cmp, label %if.end12, label %if.else
 
 if.else:                                          ; preds = %entry
-  %4 = load i32* %responseY
-  %5 = load i8* %valueY
+  %4 = load i32, i32* %responseY
+  %5 = load i8, i8* %valueY
   %call1 = call float @f_nofp(i32 %4, i8 zeroext %5)
   %call4 = call float @fabsf(float %call1)
   %cmp5 = fcmp ogt float %call4, 0x3FC1EB8520000000
@@ -65,19 +65,19 @@
   call void @getY(i32* %responseY, i8* %valueY)
   call void @getZ(i32* %responseZ, i8* %valueZ)
 
-  %0 = load i32* %responseX
-  %1 = load i8* %valueX
+  %0 = load i32, i32* %responseX
+  %1 = load i8, i8* %valueX
   %call = call float @f_hasfp(i32 %0, i8 zeroext %1)
-  %2 = load i32* %responseZ
-  %3 = load i8* %valueZ
+  %2 = load i32, i32* %responseZ
+  %3 = load i8, i8* %valueZ
   %call2 = call float @f_hasfp(i32 %2, i8 zeroext %3)
   %call3 = call float @fabsf(float %call)
   %cmp = fcmp ogt float %call3, 0x3FC1EB8520000000
   br i1 %cmp, label %if.end12, label %if.else
 
 if.else:                                          ; preds = %entry
-  %4 = load i32* %responseY
-  %5 = load i8* %valueY
+  %4 = load i32, i32* %responseY
+  %5 = load i8, i8* %valueY
   %call1 = call float @f_hasfp(i32 %4, i8 zeroext %5)
   %call4 = call float @fabsf(float %call1)
   %cmp5 = fcmp ogt float %call4, 0x3FC1EB8520000000
diff --git a/llvm/test/Transforms/Inline/inline-invoke-tail.ll b/llvm/test/Transforms/Inline/inline-invoke-tail.ll
index e077523..5fef4ba 100644
--- a/llvm/test/Transforms/Inline/inline-invoke-tail.ll
+++ b/llvm/test/Transforms/Inline/inline-invoke-tail.ll
@@ -19,7 +19,7 @@
 			to label %invcont unwind label %lpad
 
 invcont:
-	%retval = load i32* %a, align 4
+	%retval = load i32, i32* %a, align 4
 	ret i32 %retval
 
 lpad:
diff --git a/llvm/test/Transforms/Inline/inline-optsize.ll b/llvm/test/Transforms/Inline/inline-optsize.ll
index 3ad573a..820e56f 100644
--- a/llvm/test/Transforms/Inline/inline-optsize.ll
+++ b/llvm/test/Transforms/Inline/inline-optsize.ll
@@ -11,15 +11,15 @@
 ; This function should be larger than the inline threshold for -Oz (25), but
 ; smaller than the inline threshold for optsize (75).
 define i32 @inner() {
-  %a1 = load volatile i32* @a
+  %a1 = load volatile i32, i32* @a
   %x1 = add i32 %a1,  %a1
-  %a2 = load volatile i32* @a
+  %a2 = load volatile i32, i32* @a
   %x2 = add i32 %x1, %a2
-  %a3 = load volatile i32* @a
+  %a3 = load volatile i32, i32* @a
   %x3 = add i32 %x2, %a3
-  %a4 = load volatile i32* @a
+  %a4 = load volatile i32, i32* @a
   %x4 = add i32 %x3, %a4
-  %a5 = load volatile i32* @a
+  %a5 = load volatile i32, i32* @a
   %x5 = add i32 %x3, %a5
   ret i32 %x5
 }
diff --git a/llvm/test/Transforms/Inline/inline_constprop.ll b/llvm/test/Transforms/Inline/inline_constprop.ll
index b59a270..de23b61 100644
--- a/llvm/test/Transforms/Inline/inline_constprop.ll
+++ b/llvm/test/Transforms/Inline/inline_constprop.ll
@@ -267,8 +267,8 @@
   br i1 %cmp, label %if.then, label %if.end3
 
 if.then:
-  %0 = load i32* %a
-  %1 = load i32* %b
+  %0 = load i32, i32* %a
+  %1 = load i32, i32* %b
   %cmp1 = icmp eq i32 %0, %1
   br i1 %cmp1, label %return, label %if.end3
 
diff --git a/llvm/test/Transforms/Inline/inline_dbg_declare.ll b/llvm/test/Transforms/Inline/inline_dbg_declare.ll
index c5362fc..2f646e0 100644
--- a/llvm/test/Transforms/Inline/inline_dbg_declare.ll
+++ b/llvm/test/Transforms/Inline/inline_dbg_declare.ll
@@ -28,7 +28,7 @@
   %x.addr = alloca float, align 4

   store float %x, float* %x.addr, align 4

   call void @llvm.dbg.declare(metadata float* %x.addr, metadata !16, metadata !17), !dbg !18

-  %0 = load float* %x.addr, align 4, !dbg !19

+  %0 = load float, float* %x.addr, align 4, !dbg !19

   ret float %0, !dbg !19

 }

 

@@ -46,15 +46,15 @@
   %dst.addr = alloca float*, align 4

   store float* %dst, float** %dst.addr, align 4

   call void @llvm.dbg.declare(metadata float** %dst.addr, metadata !20, metadata !17), !dbg !21

-  %0 = load float** %dst.addr, align 4, !dbg !22

+  %0 = load float*, float** %dst.addr, align 4, !dbg !22

   %arrayidx = getelementptr inbounds float, float* %0, i32 0, !dbg !22

-  %1 = load float* %arrayidx, align 4, !dbg !22

+  %1 = load float, float* %arrayidx, align 4, !dbg !22

   %call = call float @foo(float %1), !dbg !22

 

 ; CHECK-NOT: call float @foo

 ; CHECK: void @llvm.dbg.declare(metadata float* [[x_addr_i]], metadata [[m23:![0-9]+]], metadata !17), !dbg [[m24:![0-9]+]]

 

-  %2 = load float** %dst.addr, align 4, !dbg !22

+  %2 = load float*, float** %dst.addr, align 4, !dbg !22

   %arrayidx1 = getelementptr inbounds float, float* %2, i32 0, !dbg !22

   store float %call, float* %arrayidx1, align 4, !dbg !22

   ret void, !dbg !23

diff --git a/llvm/test/Transforms/Inline/inline_minisize.ll b/llvm/test/Transforms/Inline/inline_minisize.ll
index d266931..0bf75d7 100644
--- a/llvm/test/Transforms/Inline/inline_minisize.ll
+++ b/llvm/test/Transforms/Inline/inline_minisize.ll
@@ -8,17 +8,17 @@
   %res = alloca i32, align 4
   %i = alloca i32, align 4
   store i32 %a, i32* %a.addr, align 4
-  %tmp = load i32* %a.addr, align 4
+  %tmp = load i32, i32* %a.addr, align 4
   %idxprom = sext i32 %tmp to i64
-  %tmp1 = load i32** @data, align 8
+  %tmp1 = load i32*, i32** @data, align 8
   %arrayidx = getelementptr inbounds i32, i32* %tmp1, i64 %idxprom
-  %tmp2 = load i32* %arrayidx, align 4
-  %tmp3 = load i32* %a.addr, align 4
+  %tmp2 = load i32, i32* %arrayidx, align 4
+  %tmp3 = load i32, i32* %a.addr, align 4
   %add = add nsw i32 %tmp3, 1
   %idxprom1 = sext i32 %add to i64
-  %tmp4 = load i32** @data, align 8
+  %tmp4 = load i32*, i32** @data, align 8
   %arrayidx2 = getelementptr inbounds i32, i32* %tmp4, i64 %idxprom1
-  %tmp5 = load i32* %arrayidx2, align 4
+  %tmp5 = load i32, i32* %arrayidx2, align 4
   %mul = mul nsw i32 %tmp2, %tmp5
   store i32 %mul, i32* %res, align 4
   store i32 0, i32* %i, align 4
@@ -26,21 +26,21 @@
   br label %for.cond
 
 for.cond:                                         ; preds = %for.inc, %entry
-  %tmp6 = load i32* %i, align 4
-  %tmp7 = load i32* %res, align 4
+  %tmp6 = load i32, i32* %i, align 4
+  %tmp7 = load i32, i32* %res, align 4
   %cmp = icmp slt i32 %tmp6, %tmp7
   br i1 %cmp, label %for.body, label %for.end
 
 for.body:                                         ; preds = %for.cond
-  %tmp8 = load i32* %i, align 4
+  %tmp8 = load i32, i32* %i, align 4
   %idxprom3 = sext i32 %tmp8 to i64
-  %tmp9 = load i32** @data, align 8
+  %tmp9 = load i32*, i32** @data, align 8
   %arrayidx4 = getelementptr inbounds i32, i32* %tmp9, i64 %idxprom3
   call void @fct0(i32* %arrayidx4)
   br label %for.inc
 
 for.inc:                                          ; preds = %for.body
-  %tmp10 = load i32* %i, align 4
+  %tmp10 = load i32, i32* %i, align 4
   %inc = add nsw i32 %tmp10, 1
   store i32 %inc, i32* %i, align 4
   br label %for.cond
@@ -50,21 +50,21 @@
   br label %for.cond5
 
 for.cond5:                                        ; preds = %for.inc10, %for.end
-  %tmp11 = load i32* %i, align 4
-  %tmp12 = load i32* %res, align 4
+  %tmp11 = load i32, i32* %i, align 4
+  %tmp12 = load i32, i32* %res, align 4
   %cmp6 = icmp slt i32 %tmp11, %tmp12
   br i1 %cmp6, label %for.body7, label %for.end12
 
 for.body7:                                        ; preds = %for.cond5
-  %tmp13 = load i32* %i, align 4
+  %tmp13 = load i32, i32* %i, align 4
   %idxprom8 = sext i32 %tmp13 to i64
-  %tmp14 = load i32** @data, align 8
+  %tmp14 = load i32*, i32** @data, align 8
   %arrayidx9 = getelementptr inbounds i32, i32* %tmp14, i64 %idxprom8
   call void @fct0(i32* %arrayidx9)
   br label %for.inc10
 
 for.inc10:                                        ; preds = %for.body7
-  %tmp15 = load i32* %i, align 4
+  %tmp15 = load i32, i32* %i, align 4
   %inc11 = add nsw i32 %tmp15, 1
   store i32 %inc11, i32* %i, align 4
   br label %for.cond5
@@ -74,27 +74,27 @@
   br label %for.cond13
 
 for.cond13:                                       ; preds = %for.inc18, %for.end12
-  %tmp16 = load i32* %i, align 4
-  %tmp17 = load i32* %res, align 4
+  %tmp16 = load i32, i32* %i, align 4
+  %tmp17 = load i32, i32* %res, align 4
   %cmp14 = icmp slt i32 %tmp16, %tmp17
   br i1 %cmp14, label %for.body15, label %for.end20
 
 for.body15:                                       ; preds = %for.cond13
-  %tmp18 = load i32* %i, align 4
+  %tmp18 = load i32, i32* %i, align 4
   %idxprom16 = sext i32 %tmp18 to i64
-  %tmp19 = load i32** @data, align 8
+  %tmp19 = load i32*, i32** @data, align 8
   %arrayidx17 = getelementptr inbounds i32, i32* %tmp19, i64 %idxprom16
   call void @fct0(i32* %arrayidx17)
   br label %for.inc18
 
 for.inc18:                                        ; preds = %for.body15
-  %tmp20 = load i32* %i, align 4
+  %tmp20 = load i32, i32* %i, align 4
   %inc19 = add nsw i32 %tmp20, 1
   store i32 %inc19, i32* %i, align 4
   br label %for.cond13
 
 for.end20:                                        ; preds = %for.cond13
-  %tmp21 = load i32* %res, align 4
+  %tmp21 = load i32, i32* %res, align 4
   ret i32 %tmp21
 }
 
@@ -106,19 +106,19 @@
   %res = alloca i32, align 4
   %i = alloca i32, align 4
   store i32 %a, i32* %a.addr, align 4
-  %tmp = load i32* %a.addr, align 4
+  %tmp = load i32, i32* %a.addr, align 4
   %shl = shl i32 %tmp, 1
   %idxprom = sext i32 %shl to i64
-  %tmp1 = load i32** @data, align 8
+  %tmp1 = load i32*, i32** @data, align 8
   %arrayidx = getelementptr inbounds i32, i32* %tmp1, i64 %idxprom
-  %tmp2 = load i32* %arrayidx, align 4
-  %tmp3 = load i32* %a.addr, align 4
+  %tmp2 = load i32, i32* %arrayidx, align 4
+  %tmp3 = load i32, i32* %a.addr, align 4
   %shl1 = shl i32 %tmp3, 1
   %add = add nsw i32 %shl1, 13
   %idxprom2 = sext i32 %add to i64
-  %tmp4 = load i32** @data, align 8
+  %tmp4 = load i32*, i32** @data, align 8
   %arrayidx3 = getelementptr inbounds i32, i32* %tmp4, i64 %idxprom2
-  %tmp5 = load i32* %arrayidx3, align 4
+  %tmp5 = load i32, i32* %arrayidx3, align 4
   %mul = mul nsw i32 %tmp2, %tmp5
   store i32 %mul, i32* %res, align 4
   store i32 0, i32* %i, align 4
@@ -126,21 +126,21 @@
   br label %for.cond
 
 for.cond:                                         ; preds = %for.inc, %entry
-  %tmp6 = load i32* %i, align 4
-  %tmp7 = load i32* %res, align 4
+  %tmp6 = load i32, i32* %i, align 4
+  %tmp7 = load i32, i32* %res, align 4
   %cmp = icmp slt i32 %tmp6, %tmp7
   br i1 %cmp, label %for.body, label %for.end
 
 for.body:                                         ; preds = %for.cond
-  %tmp8 = load i32* %i, align 4
+  %tmp8 = load i32, i32* %i, align 4
   %idxprom4 = sext i32 %tmp8 to i64
-  %tmp9 = load i32** @data, align 8
+  %tmp9 = load i32*, i32** @data, align 8
   %arrayidx5 = getelementptr inbounds i32, i32* %tmp9, i64 %idxprom4
   call void @fct0(i32* %arrayidx5)
   br label %for.inc
 
 for.inc:                                          ; preds = %for.body
-  %tmp10 = load i32* %i, align 4
+  %tmp10 = load i32, i32* %i, align 4
   %inc = add nsw i32 %tmp10, 1
   store i32 %inc, i32* %i, align 4
   br label %for.cond
@@ -150,21 +150,21 @@
   br label %for.cond6
 
 for.cond6:                                        ; preds = %for.inc11, %for.end
-  %tmp11 = load i32* %i, align 4
-  %tmp12 = load i32* %res, align 4
+  %tmp11 = load i32, i32* %i, align 4
+  %tmp12 = load i32, i32* %res, align 4
   %cmp7 = icmp slt i32 %tmp11, %tmp12
   br i1 %cmp7, label %for.body8, label %for.end13
 
 for.body8:                                        ; preds = %for.cond6
-  %tmp13 = load i32* %i, align 4
+  %tmp13 = load i32, i32* %i, align 4
   %idxprom9 = sext i32 %tmp13 to i64
-  %tmp14 = load i32** @data, align 8
+  %tmp14 = load i32*, i32** @data, align 8
   %arrayidx10 = getelementptr inbounds i32, i32* %tmp14, i64 %idxprom9
   call void @fct0(i32* %arrayidx10)
   br label %for.inc11
 
 for.inc11:                                        ; preds = %for.body8
-  %tmp15 = load i32* %i, align 4
+  %tmp15 = load i32, i32* %i, align 4
   %inc12 = add nsw i32 %tmp15, 1
   store i32 %inc12, i32* %i, align 4
   br label %for.cond6
@@ -174,27 +174,27 @@
   br label %for.cond14
 
 for.cond14:                                       ; preds = %for.inc19, %for.end13
-  %tmp16 = load i32* %i, align 4
-  %tmp17 = load i32* %res, align 4
+  %tmp16 = load i32, i32* %i, align 4
+  %tmp17 = load i32, i32* %res, align 4
   %cmp15 = icmp slt i32 %tmp16, %tmp17
   br i1 %cmp15, label %for.body16, label %for.end21
 
 for.body16:                                       ; preds = %for.cond14
-  %tmp18 = load i32* %i, align 4
+  %tmp18 = load i32, i32* %i, align 4
   %idxprom17 = sext i32 %tmp18 to i64
-  %tmp19 = load i32** @data, align 8
+  %tmp19 = load i32*, i32** @data, align 8
   %arrayidx18 = getelementptr inbounds i32, i32* %tmp19, i64 %idxprom17
   call void @fct0(i32* %arrayidx18)
   br label %for.inc19
 
 for.inc19:                                        ; preds = %for.body16
-  %tmp20 = load i32* %i, align 4
+  %tmp20 = load i32, i32* %i, align 4
   %inc20 = add nsw i32 %tmp20, 1
   store i32 %inc20, i32* %i, align 4
   br label %for.cond14
 
 for.end21:                                        ; preds = %for.cond14
-  %tmp21 = load i32* %res, align 4
+  %tmp21 = load i32, i32* %res, align 4
   ret i32 %tmp21
 }
 
@@ -206,9 +206,9 @@
   ;CHECK-NOT: call i32 @fct2
   %c.addr = alloca i32, align 4
   store i32 %c, i32* %c.addr, align 4
-  %tmp = load i32* %c.addr, align 4
+  %tmp = load i32, i32* %c.addr, align 4
   %call = call i32 @fct1(i32 %tmp)
-  %tmp1 = load i32* %c.addr, align 4
+  %tmp1 = load i32, i32* %c.addr, align 4
   %call1 = call i32 @fct2(i32 %tmp1)
   %add = add nsw i32 %call, %call1
   ret i32 %add
@@ -223,9 +223,9 @@
   ;CHECK: call i32 @fct2
   %c.addr = alloca i32, align 4
   store i32 %c, i32* %c.addr, align 4
-  %tmp = load i32* %c.addr, align 4
+  %tmp = load i32, i32* %c.addr, align 4
   %call = call i32 @fct1(i32 %tmp)
-  %tmp1 = load i32* %c.addr, align 4
+  %tmp1 = load i32, i32* %c.addr, align 4
   %call1 = call i32 @fct2(i32 %tmp1)
   %add = add nsw i32 %call, %call1
   ret i32 %add
diff --git a/llvm/test/Transforms/Inline/invoke-combine-clauses.ll b/llvm/test/Transforms/Inline/invoke-combine-clauses.ll
index 5f06039..89a4cc9 100644
--- a/llvm/test/Transforms/Inline/invoke-combine-clauses.ll
+++ b/llvm/test/Transforms/Inline/invoke-combine-clauses.ll
@@ -20,7 +20,7 @@
 lpad:
   %lp = landingpad i32 personality i8* null
       catch i8* @exception_inner
-  %cond = load i1* @condition
+  %cond = load i1, i1* @condition
   br i1 %cond, label %resume1, label %resume2
 resume1:
   resume i32 1
diff --git a/llvm/test/Transforms/Inline/noalias-cs.ll b/llvm/test/Transforms/Inline/noalias-cs.ll
index bf1babd..8528a39 100644
--- a/llvm/test/Transforms/Inline/noalias-cs.ll
+++ b/llvm/test/Transforms/Inline/noalias-cs.ll
@@ -5,12 +5,12 @@
 ; Function Attrs: nounwind uwtable
 define void @foo2(float* nocapture %a, float* nocapture %b, float* nocapture readonly %c) #0 {
 entry:
-  %0 = load float* %c, align 4, !noalias !3
+  %0 = load float, float* %c, align 4, !noalias !3
   %arrayidx.i = getelementptr inbounds float, float* %a, i64 5
   store float %0, float* %arrayidx.i, align 4, !alias.scope !7, !noalias !8
   %arrayidx1.i = getelementptr inbounds float, float* %b, i64 8
   store float %0, float* %arrayidx1.i, align 4, !alias.scope !8, !noalias !7
-  %1 = load float* %c, align 4
+  %1 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 7
   store float %1, float* %arrayidx, align 4
   ret void
@@ -25,20 +25,20 @@
 
 ; CHECK: define void @foo(float* nocapture %a, float* nocapture %b, float* nocapture readonly %c) #0 {
 ; CHECK: entry:
-; CHECK:   %0 = load float* %c, align 4, !noalias !6
+; CHECK:   %0 = load float, float* %c, align 4, !noalias !6
 ; CHECK:   %arrayidx.i.i = getelementptr inbounds float, float* %a, i64 5
 ; CHECK:   store float %0, float* %arrayidx.i.i, align 4, !alias.scope !12, !noalias !13
 ; CHECK:   %arrayidx1.i.i = getelementptr inbounds float, float* %b, i64 8
 ; CHECK:   store float %0, float* %arrayidx1.i.i, align 4, !alias.scope !14, !noalias !15
-; CHECK:   %1 = load float* %c, align 4, !noalias !16
+; CHECK:   %1 = load float, float* %c, align 4, !noalias !16
 ; CHECK:   %arrayidx.i = getelementptr inbounds float, float* %a, i64 7
 ; CHECK:   store float %1, float* %arrayidx.i, align 4, !noalias !16
-; CHECK:   %2 = load float* %a, align 4, !alias.scope !16, !noalias !17
+; CHECK:   %2 = load float, float* %a, align 4, !alias.scope !16, !noalias !17
 ; CHECK:   %arrayidx.i.i1 = getelementptr inbounds float, float* %b, i64 5
 ; CHECK:   store float %2, float* %arrayidx.i.i1, align 4, !alias.scope !21, !noalias !22
 ; CHECK:   %arrayidx1.i.i2 = getelementptr inbounds float, float* %b, i64 8
 ; CHECK:   store float %2, float* %arrayidx1.i.i2, align 4, !alias.scope !23, !noalias !24
-; CHECK:   %3 = load float* %a, align 4, !alias.scope !16
+; CHECK:   %3 = load float, float* %a, align 4, !alias.scope !16
 ; CHECK:   %arrayidx.i3 = getelementptr inbounds float, float* %b, i64 7
 ; CHECK:   store float %3, float* %arrayidx.i3, align 4, !alias.scope !16
 ; CHECK:   ret void
diff --git a/llvm/test/Transforms/Inline/noalias.ll b/llvm/test/Transforms/Inline/noalias.ll
index f48aa3d..27e53af 100644
--- a/llvm/test/Transforms/Inline/noalias.ll
+++ b/llvm/test/Transforms/Inline/noalias.ll
@@ -4,7 +4,7 @@
 
 define void @hello(float* noalias nocapture %a, float* nocapture readonly %c) #0 {
 entry:
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 5
   store float %0, float* %arrayidx, align 4
   ret void
@@ -13,7 +13,7 @@
 define void @foo(float* nocapture %a, float* nocapture readonly %c) #0 {
 entry:
   tail call void @hello(float* %a, float* %c)
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 7
   store float %0, float* %arrayidx, align 4
   ret void
@@ -21,10 +21,10 @@
 
 ; CHECK: define void @foo(float* nocapture %a, float* nocapture readonly %c) #0 {
 ; CHECK: entry:
-; CHECK:   %0 = load float* %c, align 4, !noalias !0
+; CHECK:   %0 = load float, float* %c, align 4, !noalias !0
 ; CHECK:   %arrayidx.i = getelementptr inbounds float, float* %a, i64 5
 ; CHECK:   store float %0, float* %arrayidx.i, align 4, !alias.scope !0
-; CHECK:   %1 = load float* %c, align 4
+; CHECK:   %1 = load float, float* %c, align 4
 ; CHECK:   %arrayidx = getelementptr inbounds float, float* %a, i64 7
 ; CHECK:   store float %1, float* %arrayidx, align 4
 ; CHECK:   ret void
@@ -32,7 +32,7 @@
 
 define void @hello2(float* noalias nocapture %a, float* noalias nocapture %b, float* nocapture readonly %c) #0 {
 entry:
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 5
   store float %0, float* %arrayidx, align 4
   %arrayidx1 = getelementptr inbounds float, float* %b, i64 8
@@ -43,7 +43,7 @@
 define void @foo2(float* nocapture %a, float* nocapture %b, float* nocapture readonly %c) #0 {
 entry:
   tail call void @hello2(float* %a, float* %b, float* %c)
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 7
   store float %0, float* %arrayidx, align 4
   ret void
@@ -51,12 +51,12 @@
 
 ; CHECK: define void @foo2(float* nocapture %a, float* nocapture %b, float* nocapture readonly %c) #0 {
 ; CHECK: entry:
-; CHECK:   %0 = load float* %c, align 4, !noalias !3
+; CHECK:   %0 = load float, float* %c, align 4, !noalias !3
 ; CHECK:   %arrayidx.i = getelementptr inbounds float, float* %a, i64 5
 ; CHECK:   store float %0, float* %arrayidx.i, align 4, !alias.scope !7, !noalias !8
 ; CHECK:   %arrayidx1.i = getelementptr inbounds float, float* %b, i64 8
 ; CHECK:   store float %0, float* %arrayidx1.i, align 4, !alias.scope !8, !noalias !7
-; CHECK:   %1 = load float* %c, align 4
+; CHECK:   %1 = load float, float* %c, align 4
 ; CHECK:   %arrayidx = getelementptr inbounds float, float* %a, i64 7
 ; CHECK:   store float %1, float* %arrayidx, align 4
 ; CHECK:   ret void
diff --git a/llvm/test/Transforms/Inline/noalias2.ll b/llvm/test/Transforms/Inline/noalias2.ll
index a785329..432fccf 100644
--- a/llvm/test/Transforms/Inline/noalias2.ll
+++ b/llvm/test/Transforms/Inline/noalias2.ll
@@ -4,7 +4,7 @@
 
 define void @hello(float* noalias nocapture %a, float* noalias nocapture readonly %c) #0 {
 entry:
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 5
   store float %0, float* %arrayidx, align 4
   ret void
@@ -13,7 +13,7 @@
 define void @foo(float* noalias nocapture %a, float* noalias nocapture readonly %c) #0 {
 entry:
   tail call void @hello(float* %a, float* %c)
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 7
   store float %0, float* %arrayidx, align 4
   ret void
@@ -21,10 +21,10 @@
 
 ; CHECK: define void @foo(float* noalias nocapture %a, float* noalias nocapture readonly %c) #0 {
 ; CHECK: entry:
-; CHECK:   %0 = load float* %c, align 4, !alias.scope !0, !noalias !3
+; CHECK:   %0 = load float, float* %c, align 4, !alias.scope !0, !noalias !3
 ; CHECK:   %arrayidx.i = getelementptr inbounds float, float* %a, i64 5
 ; CHECK:   store float %0, float* %arrayidx.i, align 4, !alias.scope !3, !noalias !0
-; CHECK:   %1 = load float* %c, align 4
+; CHECK:   %1 = load float, float* %c, align 4
 ; CHECK:   %arrayidx = getelementptr inbounds float, float* %a, i64 7
 ; CHECK:   store float %1, float* %arrayidx, align 4
 ; CHECK:   ret void
@@ -32,7 +32,7 @@
 
 define void @hello2(float* noalias nocapture %a, float* noalias nocapture %b, float* nocapture readonly %c) #0 {
 entry:
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 6
   store float %0, float* %arrayidx, align 4
   %arrayidx1 = getelementptr inbounds float, float* %b, i64 8
@@ -46,7 +46,7 @@
 entry:
   tail call void @foo(float* %a, float* %c)
   tail call void @hello2(float* %a, float* %b, float* %c)
-  %0 = load float* %c, align 4
+  %0 = load float, float* %c, align 4
   %arrayidx = getelementptr inbounds float, float* %a, i64 7
   store float %0, float* %arrayidx, align 4
   ret void
@@ -54,18 +54,18 @@
 
 ; CHECK: define void @foo2(float* nocapture %a, float* nocapture %b, float* nocapture readonly %c) #0 {
 ; CHECK: entry:
-; CHECK:   %0 = load float* %c, align 4, !alias.scope !5, !noalias !10
+; CHECK:   %0 = load float, float* %c, align 4, !alias.scope !5, !noalias !10
 ; CHECK:   %arrayidx.i.i = getelementptr inbounds float, float* %a, i64 5
 ; CHECK:   store float %0, float* %arrayidx.i.i, align 4, !alias.scope !10, !noalias !5
-; CHECK:   %1 = load float* %c, align 4, !alias.scope !13, !noalias !14
+; CHECK:   %1 = load float, float* %c, align 4, !alias.scope !13, !noalias !14
 ; CHECK:   %arrayidx.i = getelementptr inbounds float, float* %a, i64 7
 ; CHECK:   store float %1, float* %arrayidx.i, align 4, !alias.scope !14, !noalias !13
-; CHECK:   %2 = load float* %c, align 4, !noalias !15
+; CHECK:   %2 = load float, float* %c, align 4, !noalias !15
 ; CHECK:   %arrayidx.i1 = getelementptr inbounds float, float* %a, i64 6
 ; CHECK:   store float %2, float* %arrayidx.i1, align 4, !alias.scope !19, !noalias !20
 ; CHECK:   %arrayidx1.i = getelementptr inbounds float, float* %b, i64 8
 ; CHECK:   store float %2, float* %arrayidx1.i, align 4, !alias.scope !20, !noalias !19
-; CHECK:   %3 = load float* %c, align 4
+; CHECK:   %3 = load float, float* %c, align 4
 ; CHECK:   %arrayidx = getelementptr inbounds float, float* %a, i64 7
 ; CHECK:   store float %3, float* %arrayidx, align 4
 ; CHECK:   ret void
diff --git a/llvm/test/Transforms/Inline/optimization-remarks.ll b/llvm/test/Transforms/Inline/optimization-remarks.ll
index fb1b047..8a3e4d1 100644
--- a/llvm/test/Transforms/Inline/optimization-remarks.ll
+++ b/llvm/test/Transforms/Inline/optimization-remarks.ll
@@ -12,8 +12,8 @@
   %y.addr = alloca i32, align 4
   store i32 %x, i32* %x.addr, align 4
   store i32 %y, i32* %y.addr, align 4
-  %0 = load i32* %x.addr, align 4
-  %1 = load i32* %y.addr, align 4
+  %0 = load i32, i32* %x.addr, align 4
+  %1 = load i32, i32* %y.addr, align 4
   %add = add nsw i32 %0, %1
   ret i32 %add
 }
@@ -25,8 +25,8 @@
   %y.addr = alloca i32, align 4
   store i32 %x, i32* %x.addr, align 4
   store i32 %y, i32* %y.addr, align 4
-  %0 = load i32* %x.addr, align 4
-  %1 = load i32* %y.addr, align 4
+  %0 = load i32, i32* %x.addr, align 4
+  %1 = load i32, i32* %y.addr, align 4
   %mul = mul nsw i32 %0, %1
   %conv = sitofp i32 %mul to float
   ret float %conv
@@ -37,14 +37,14 @@
 entry:
   %j.addr = alloca i32, align 4
   store i32 %j, i32* %j.addr, align 4
-  %0 = load i32* %j.addr, align 4
-  %1 = load i32* %j.addr, align 4
+  %0 = load i32, i32* %j.addr, align 4
+  %1 = load i32, i32* %j.addr, align 4
   %sub = sub nsw i32 %1, 2
   %call = call i32 @foo(i32 %0, i32 %sub)
   %conv = sitofp i32 %call to float
-  %2 = load i32* %j.addr, align 4
+  %2 = load i32, i32* %j.addr, align 4
   %sub1 = sub nsw i32 %2, 2
-  %3 = load i32* %j.addr, align 4
+  %3 = load i32, i32* %j.addr, align 4
   %call2 = call float @foz(i32 %sub1, i32 %3)
   %mul = fmul float %conv, %call2
   %conv3 = fptosi float %mul to i32
diff --git a/llvm/test/Transforms/Inline/ptr-diff.ll b/llvm/test/Transforms/Inline/ptr-diff.ll
index 8388e4f..728f379 100644
--- a/llvm/test/Transforms/Inline/ptr-diff.ll
+++ b/llvm/test/Transforms/Inline/ptr-diff.ll
@@ -25,7 +25,7 @@
   ret i32 3
 
 else:
-  %t = load i32* %begin
+  %t = load i32, i32* %begin
   ret i32 %t
 }
 
@@ -53,7 +53,7 @@
   ret i32 3
 
 else:
-  %t = load i32* %begin
+  %t = load i32, i32* %begin
   ret i32 %t
 }
 
@@ -63,9 +63,9 @@
   %p1 = inttoptr i32 %a to i32 addrspace(1)*
   %p2 = inttoptr i32 %b to i32 addrspace(1)*
   %p3 = inttoptr i32 %c to i32 addrspace(1)*
-  %t1 = load i32 addrspace(1)* %p1
-  %t2 = load i32 addrspace(1)* %p2
-  %t3 = load i32 addrspace(1)* %p3
+  %t1 = load i32, i32 addrspace(1)* %p1
+  %t2 = load i32, i32 addrspace(1)* %p2
+  %t3 = load i32, i32 addrspace(1)* %p3
   %s = add i32 %t1, %t2
   %s1 = add i32 %s, %t3
   ret i32 %s1
@@ -84,9 +84,9 @@
   %p1 = inttoptr i32 %a to i32 addrspace(2)*
   %p2 = inttoptr i32 %b to i32 addrspace(2)*
   %p3 = inttoptr i32 %c to i32 addrspace(2)*
-  %t1 = load i32 addrspace(2)* %p1
-  %t2 = load i32 addrspace(2)* %p2
-  %t3 = load i32 addrspace(2)* %p3
+  %t1 = load i32, i32 addrspace(2)* %p1
+  %t2 = load i32, i32 addrspace(2)* %p2
+  %t3 = load i32, i32 addrspace(2)* %p3
   %s = add i32 %t1, %t2
   %s1 = add i32 %s, %t3
   ret i32 %s1