[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/LoopStrengthReduce/ARM/2012-06-15-lsr-noaddrmode.ll b/llvm/test/Transforms/LoopStrengthReduce/ARM/2012-06-15-lsr-noaddrmode.ll
index bc654d3..56ff69c 100644
--- a/llvm/test/Transforms/LoopStrengthReduce/ARM/2012-06-15-lsr-noaddrmode.ll
+++ b/llvm/test/Transforms/LoopStrengthReduce/ARM/2012-06-15-lsr-noaddrmode.ll
@@ -50,7 +50,7 @@
 ; CHECK: ldr{{.*}}lsl #2
 define i32 @main() nounwind ssp {
 entry:
-  %v0 = load i32* @ncol, align 4
+  %v0 = load i32, i32* @ncol, align 4
   %v1 = tail call i32* @getptr() nounwind
   %cmp10.i = icmp eq i32 %v0, 0
   br label %while.cond.outer
@@ -64,12 +64,12 @@
   br label %while.body
 
 while.body:
-  %v3 = load i32* @ncol, align 4
+  %v3 = load i32, i32* @ncol, align 4
   br label %end_of_chain
 
 end_of_chain:
   %state.i = getelementptr inbounds %s, %s* %call18, i32 0, i32 0
-  %v4 = load i32** %state.i, align 4
+  %v4 = load i32*, i32** %state.i, align 4
   br label %while.cond.i.i
 
 while.cond.i.i:
@@ -80,9 +80,9 @@
 
 land.rhs.i.i:
   %arrayidx.i.i = getelementptr inbounds i32, i32* %v4, i32 %dec.i.i
-  %v5 = load i32* %arrayidx.i.i, align 4
+  %v5 = load i32, i32* %arrayidx.i.i, align 4
   %arrayidx1.i.i = getelementptr inbounds i32, i32* %v1, i32 %dec.i.i
-  %v6 = load i32* %arrayidx1.i.i, align 4
+  %v6 = load i32, i32* %arrayidx1.i.i, align 4
   %cmp.i.i = icmp eq i32 %v5, %v6
   br i1 %cmp.i.i, label %while.cond.i.i, label %equal_data.exit.i
 
diff --git a/llvm/test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll b/llvm/test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll
index 235394c..2ad6c2e 100644
--- a/llvm/test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll
+++ b/llvm/test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll
@@ -18,13 +18,13 @@
 loop:
   %iv = phi i32* [ %a, %entry ], [ %iv4, %loop ]
   %s = phi i32 [ 0, %entry ], [ %s4, %loop ]
-  %v = load i32* %iv
+  %v = load i32, i32* %iv
   %iv1 = getelementptr inbounds i32, i32* %iv, i32 %x
-  %v1 = load i32* %iv1
+  %v1 = load i32, i32* %iv1
   %iv2 = getelementptr inbounds i32, i32* %iv1, i32 %x
-  %v2 = load i32* %iv2
+  %v2 = load i32, i32* %iv2
   %iv3 = getelementptr inbounds i32, i32* %iv2, i32 %x
-  %v3 = load i32* %iv3
+  %v3 = load i32, i32* %iv3
   %s1 = add i32 %s, %v
   %s2 = add i32 %s1, %v1
   %s3 = add i32 %s2, %v2
@@ -52,13 +52,13 @@
 loop:
   %iv = phi i32* [ %a, %entry ], [ %iv4, %loop ]
   %s = phi i32 [ 0, %entry ], [ %s4, %loop ]
-  %v = load i32* %iv
+  %v = load i32, i32* %iv
   %iv1 = getelementptr inbounds i32, i32* %iv, i32 %x
-  %v1 = load i32* %iv1
+  %v1 = load i32, i32* %iv1
   %iv2 = getelementptr inbounds i32, i32* %iv1, i32 %x
-  %v2 = load i32* %iv2
+  %v2 = load i32, i32* %iv2
   %iv3 = getelementptr inbounds i32, i32* %iv2, i32 %x
-  %v3 = load i32* %iv3
+  %v3 = load i32, i32* %iv3
   %s1 = add i32 %s, %v
   %s2 = add i32 %s1, %v1
   %s3 = add i32 %s2, %v2
@@ -103,19 +103,19 @@
   %i.010 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.body ]
   %res.addr.09 = phi i32* [ %res, %for.body.lr.ph ], [ %add.ptr7, %for.body ]
   %0 = bitcast i8* %main.addr.011 to i32*
-  %1 = load i32* %0, align 4
+  %1 = load i32, i32* %0, align 4
   %add.ptr = getelementptr inbounds i8, i8* %main.addr.011, i32 %main_stride
   %2 = bitcast i8* %add.ptr to i32*
-  %3 = load i32* %2, align 4
+  %3 = load i32, i32* %2, align 4
   %add.ptr1 = getelementptr inbounds i8, i8* %main.addr.011, i32 %add.ptr.sum
   %4 = bitcast i8* %add.ptr1 to i32*
-  %5 = load i32* %4, align 4
+  %5 = load i32, i32* %4, align 4
   %add.ptr2 = getelementptr inbounds i8, i8* %main.addr.011, i32 %add.ptr1.sum
   %6 = bitcast i8* %add.ptr2 to i32*
-  %7 = load i32* %6, align 4
+  %7 = load i32, i32* %6, align 4
   %add.ptr3 = getelementptr inbounds i8, i8* %main.addr.011, i32 %add.ptr4.sum
   %8 = bitcast i8* %add.ptr3 to i32*
-  %9 = load i32* %8, align 4
+  %9 = load i32, i32* %8, align 4
   %add = add i32 %3, %1
   %add4 = add i32 %add, %5
   %add5 = add i32 %add4, %7
@@ -147,10 +147,10 @@
 for.body:                                         ; preds = %for.body, %entry
   %i.07 = phi i32 [ 0, %entry ], [ %inc.3, %for.body ]
   %arrayidx = getelementptr inbounds i8, i8* %a, i32 %i.07
-  %0 = load i8* %arrayidx, align 1
+  %0 = load i8, i8* %arrayidx, align 1
   %conv5 = zext i8 %0 to i32
   %arrayidx1 = getelementptr inbounds i8, i8* %b, i32 %i.07
-  %1 = load i8* %arrayidx1, align 1
+  %1 = load i8, i8* %arrayidx1, align 1
   %conv26 = zext i8 %1 to i32
   %add = add nsw i32 %conv26, %conv5
   %conv3 = trunc i32 %add to i8
@@ -158,10 +158,10 @@
   store i8 %conv3, i8* %arrayidx4, align 1
   %inc1 = or i32 %i.07, 1
   %arrayidx.1 = getelementptr inbounds i8, i8* %a, i32 %inc1
-  %2 = load i8* %arrayidx.1, align 1
+  %2 = load i8, i8* %arrayidx.1, align 1
   %conv5.1 = zext i8 %2 to i32
   %arrayidx1.1 = getelementptr inbounds i8, i8* %b, i32 %inc1
-  %3 = load i8* %arrayidx1.1, align 1
+  %3 = load i8, i8* %arrayidx1.1, align 1
   %conv26.1 = zext i8 %3 to i32
   %add.1 = add nsw i32 %conv26.1, %conv5.1
   %conv3.1 = trunc i32 %add.1 to i8
@@ -169,10 +169,10 @@
   store i8 %conv3.1, i8* %arrayidx4.1, align 1
   %inc.12 = or i32 %i.07, 2
   %arrayidx.2 = getelementptr inbounds i8, i8* %a, i32 %inc.12
-  %4 = load i8* %arrayidx.2, align 1
+  %4 = load i8, i8* %arrayidx.2, align 1
   %conv5.2 = zext i8 %4 to i32
   %arrayidx1.2 = getelementptr inbounds i8, i8* %b, i32 %inc.12
-  %5 = load i8* %arrayidx1.2, align 1
+  %5 = load i8, i8* %arrayidx1.2, align 1
   %conv26.2 = zext i8 %5 to i32
   %add.2 = add nsw i32 %conv26.2, %conv5.2
   %conv3.2 = trunc i32 %add.2 to i8
@@ -180,10 +180,10 @@
   store i8 %conv3.2, i8* %arrayidx4.2, align 1
   %inc.23 = or i32 %i.07, 3
   %arrayidx.3 = getelementptr inbounds i8, i8* %a, i32 %inc.23
-  %6 = load i8* %arrayidx.3, align 1
+  %6 = load i8, i8* %arrayidx.3, align 1
   %conv5.3 = zext i8 %6 to i32
   %arrayidx1.3 = getelementptr inbounds i8, i8* %b, i32 %inc.23
-  %7 = load i8* %arrayidx1.3, align 1
+  %7 = load i8, i8* %arrayidx1.3, align 1
   %conv26.3 = zext i8 %7 to i32
   %add.3 = add nsw i32 %conv26.3, %conv5.3
   %conv3.3 = trunc i32 %add.3 to i8