[opaque pointer type] Add textual IR support for explicit type parameter to getelemen...
[oota-llvm.git] / test / CodeGen / X86 / 2011-10-12-MachineCSE.ll
index 72e672ac4f1fb381fc5e262506068d64320034b7..ff565ef5ff3ffca62eaadbef64d210dc151aea71 100644 (file)
@@ -21,28 +21,28 @@ entry:
   %bf.clear = and i32 %2, 255
   %idxprom = sext i32 %bf.clear to i64
   %3 = load %struct.optab** getelementptr inbounds ([49 x %struct.optab*]* @optab_table, i32 0, i64 0), align 8
-  %handlers = getelementptr inbounds %struct.optab* %3, i32 0, i32 1
-  %arrayidx = getelementptr inbounds [59 x %struct.anon.3]* %handlers, i32 0, i64 %idxprom
-  %insn_code = getelementptr inbounds %struct.anon.3* %arrayidx, i32 0, i32 0
+  %handlers = getelementptr inbounds %struct.optab, %struct.optab* %3, i32 0, i32 1
+  %arrayidx = getelementptr inbounds [59 x %struct.anon.3], [59 x %struct.anon.3]* %handlers, i32 0, i64 %idxprom
+  %insn_code = getelementptr inbounds %struct.anon.3, %struct.anon.3* %arrayidx, i32 0, i32 0
   %4 = load i32* %insn_code, align 4
   %cmp = icmp eq i32 %4, 1317
   br i1 %cmp, label %if.then, label %lor.lhs.false
 
 lor.lhs.false:                                    ; preds = %entry
   %idxprom1 = sext i32 %4 to i64
-  %arrayidx2 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom1
-  %operand = getelementptr inbounds %struct.insn_data* %arrayidx2, i32 0, i32 3
+  %arrayidx2 = getelementptr inbounds [0 x %struct.insn_data], [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom1
+  %operand = getelementptr inbounds %struct.insn_data, %struct.insn_data* %arrayidx2, i32 0, i32 3
   %5 = load %struct.insn_operand_data** %operand, align 8
-  %arrayidx3 = getelementptr inbounds %struct.insn_operand_data* %5, i64 0
-  %predicate = getelementptr inbounds %struct.insn_operand_data* %arrayidx3, i32 0, i32 0
+  %arrayidx3 = getelementptr inbounds %struct.insn_operand_data, %struct.insn_operand_data* %5, i64 0
+  %predicate = getelementptr inbounds %struct.insn_operand_data, %struct.insn_operand_data* %arrayidx3, i32 0, i32 0
   %6 = load i32 (%struct.rtx_def*, i32)** %predicate, align 8
   %idxprom4 = sext i32 %4 to i64
-  %arrayidx5 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom4
-  %operand6 = getelementptr inbounds %struct.insn_data* %arrayidx5, i32 0, i32 3
+  %arrayidx5 = getelementptr inbounds [0 x %struct.insn_data], [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom4
+  %operand6 = getelementptr inbounds %struct.insn_data, %struct.insn_data* %arrayidx5, i32 0, i32 3
   %7 = load %struct.insn_operand_data** %operand6, align 8
-  %arrayidx7 = getelementptr inbounds %struct.insn_operand_data* %7, i64 0
+  %arrayidx7 = getelementptr inbounds %struct.insn_operand_data, %struct.insn_operand_data* %7, i64 0
   %8 = bitcast %struct.insn_operand_data* %arrayidx7 to i8*
-  %bf.field.offs = getelementptr i8* %8, i32 16
+  %bf.field.offs = getelementptr i8, i8* %8, i32 16
   %9 = bitcast i8* %bf.field.offs to i32*
   %10 = load i32* %9, align 8
   %bf.clear8 = and i32 %10, 65535
@@ -52,19 +52,19 @@ lor.lhs.false:                                    ; preds = %entry
 
 lor.lhs.false9:                                   ; preds = %lor.lhs.false
   %idxprom10 = sext i32 %4 to i64
-  %arrayidx11 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom10
-  %operand12 = getelementptr inbounds %struct.insn_data* %arrayidx11, i32 0, i32 3
+  %arrayidx11 = getelementptr inbounds [0 x %struct.insn_data], [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom10
+  %operand12 = getelementptr inbounds %struct.insn_data, %struct.insn_data* %arrayidx11, i32 0, i32 3
   %11 = load %struct.insn_operand_data** %operand12, align 8
-  %arrayidx13 = getelementptr inbounds %struct.insn_operand_data* %11, i64 1
-  %predicate14 = getelementptr inbounds %struct.insn_operand_data* %arrayidx13, i32 0, i32 0
+  %arrayidx13 = getelementptr inbounds %struct.insn_operand_data, %struct.insn_operand_data* %11, i64 1
+  %predicate14 = getelementptr inbounds %struct.insn_operand_data, %struct.insn_operand_data* %arrayidx13, i32 0, i32 0
   %12 = load i32 (%struct.rtx_def*, i32)** %predicate14, align 8
   %idxprom15 = sext i32 %4 to i64
-  %arrayidx16 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom15
-  %operand17 = getelementptr inbounds %struct.insn_data* %arrayidx16, i32 0, i32 3
+  %arrayidx16 = getelementptr inbounds [0 x %struct.insn_data], [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom15
+  %operand17 = getelementptr inbounds %struct.insn_data, %struct.insn_data* %arrayidx16, i32 0, i32 3
   %13 = load %struct.insn_operand_data** %operand17, align 8
-  %arrayidx18 = getelementptr inbounds %struct.insn_operand_data* %13, i64 1
+  %arrayidx18 = getelementptr inbounds %struct.insn_operand_data, %struct.insn_operand_data* %13, i64 1
   %14 = bitcast %struct.insn_operand_data* %arrayidx18 to i8*
-  %bf.field.offs19 = getelementptr i8* %14, i32 16
+  %bf.field.offs19 = getelementptr i8, i8* %14, i32 16
   %15 = bitcast i8* %bf.field.offs19 to i32*
   %16 = load i32* %15, align 8
   %bf.clear20 = and i32 %16, 65535
@@ -74,19 +74,19 @@ lor.lhs.false9:                                   ; preds = %lor.lhs.false
 
 lor.lhs.false23:                                  ; preds = %lor.lhs.false9
   %idxprom24 = sext i32 %4 to i64
-  %arrayidx25 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom24
-  %operand26 = getelementptr inbounds %struct.insn_data* %arrayidx25, i32 0, i32 3
+  %arrayidx25 = getelementptr inbounds [0 x %struct.insn_data], [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom24
+  %operand26 = getelementptr inbounds %struct.insn_data, %struct.insn_data* %arrayidx25, i32 0, i32 3
   %17 = load %struct.insn_operand_data** %operand26, align 8
-  %arrayidx27 = getelementptr inbounds %struct.insn_operand_data* %17, i64 2
-  %predicate28 = getelementptr inbounds %struct.insn_operand_data* %arrayidx27, i32 0, i32 0
+  %arrayidx27 = getelementptr inbounds %struct.insn_operand_data, %struct.insn_operand_data* %17, i64 2
+  %predicate28 = getelementptr inbounds %struct.insn_operand_data, %struct.insn_operand_data* %arrayidx27, i32 0, i32 0
   %18 = load i32 (%struct.rtx_def*, i32)** %predicate28, align 8
   %idxprom29 = sext i32 %4 to i64
-  %arrayidx30 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom29
-  %operand31 = getelementptr inbounds %struct.insn_data* %arrayidx30, i32 0, i32 3
+  %arrayidx30 = getelementptr inbounds [0 x %struct.insn_data], [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom29
+  %operand31 = getelementptr inbounds %struct.insn_data, %struct.insn_data* %arrayidx30, i32 0, i32 3
   %19 = load %struct.insn_operand_data** %operand31, align 8
-  %arrayidx32 = getelementptr inbounds %struct.insn_operand_data* %19, i64 2
+  %arrayidx32 = getelementptr inbounds %struct.insn_operand_data, %struct.insn_operand_data* %19, i64 2
   %20 = bitcast %struct.insn_operand_data* %arrayidx32 to i8*
-  %bf.field.offs33 = getelementptr i8* %20, i32 16
+  %bf.field.offs33 = getelementptr i8, i8* %20, i32 16
   %21 = bitcast i8* %bf.field.offs33 to i32*
   %22 = load i32* %21, align 8
   %bf.clear34 = and i32 %22, 65535
@@ -99,8 +99,8 @@ if.then:                                          ; preds = %lor.lhs.false23, %l
 
 if.end:                                           ; preds = %lor.lhs.false23
   %idxprom37 = sext i32 %4 to i64
-  %arrayidx38 = getelementptr inbounds [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom37
-  %genfun = getelementptr inbounds %struct.insn_data* %arrayidx38, i32 0, i32 2
+  %arrayidx38 = getelementptr inbounds [0 x %struct.insn_data], [0 x %struct.insn_data]* @insn_data, i32 0, i64 %idxprom37
+  %genfun = getelementptr inbounds %struct.insn_data, %struct.insn_data* %arrayidx38, i32 0, i32 2
   %23 = load %struct.rtx_def* (%struct.rtx_def*, ...)** %genfun, align 8
   %call39 = tail call %struct.rtx_def* (%struct.rtx_def*, ...)* %23(%struct.rtx_def* %r0, %struct.rtx_def* %r1, %struct.rtx_def* %c)
   br label %return