diff options
Diffstat (limited to 'test/Transforms/LoopIdiom')
-rw-r--r-- | test/Transforms/LoopIdiom/basic-address-space.ll | 12 | ||||
-rw-r--r-- | test/Transforms/LoopIdiom/basic.ll | 63 | ||||
-rw-r--r-- | test/Transforms/LoopIdiom/crash.ll | 4 | ||||
-rw-r--r-- | test/Transforms/LoopIdiom/debug-line.ll | 34 | ||||
-rw-r--r-- | test/Transforms/LoopIdiom/memset_noidiom.ll | 2 | ||||
-rw-r--r-- | test/Transforms/LoopIdiom/non-canonical-loop.ll | 2 | ||||
-rw-r--r-- | test/Transforms/LoopIdiom/scev-invalidation.ll | 10 |
7 files changed, 67 insertions, 60 deletions
diff --git a/test/Transforms/LoopIdiom/basic-address-space.ll b/test/Transforms/LoopIdiom/basic-address-space.ll index 697ab37..67cabf3 100644 --- a/test/Transforms/LoopIdiom/basic-address-space.ll +++ b/test/Transforms/LoopIdiom/basic-address-space.ll @@ -22,7 +22,7 @@ for.body5: ; preds = %for.body5, %bb.nph %j.02 = phi i16 [ 0, %bb.nph ], [ %inc, %for.body5 ] %mul = mul nsw i16 %i.04, 100 %add = add nsw i16 %j.02, %mul - %arrayidx = getelementptr inbounds i8 addrspace(2)* %X, i16 %add + %arrayidx = getelementptr inbounds i8, i8 addrspace(2)* %X, i16 %add store i8 0, i8 addrspace(2)* %arrayidx, align 1 %inc = add nsw i16 %j.02, 1 %cmp4 = icmp eq i16 %inc, 100 @@ -45,7 +45,7 @@ entry: for.body: ; preds = %entry, %for.body %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.body ] - %arrayidx = getelementptr i32 addrspace(2)* %P, i64 %indvar + %arrayidx = getelementptr i32, i32 addrspace(2)* %P, i64 %indvar store i32 1, i32 addrspace(2)* %arrayidx, align 4 %indvar.next = add i64 %indvar, 1 %exitcond = icmp eq i64 %indvar.next, 10000 @@ -74,18 +74,18 @@ for.body: ; preds = %for.inc, %for.body. %tmp5 = phi i32 [ %inc, %for.body ], [ 0, %entry ] %add = add nsw i32 %tmp5, 4 %idxprom = sext i32 %add to i64 - %arrayidx = getelementptr inbounds [7 x i32] addrspace(2)* @g_50, i32 0, i64 %idxprom - %tmp2 = load i32 addrspace(2)* %arrayidx, align 4 + %arrayidx = getelementptr inbounds [7 x i32], [7 x i32] addrspace(2)* @g_50, i32 0, i64 %idxprom + %tmp2 = load i32, i32 addrspace(2)* %arrayidx, align 4 %add4 = add nsw i32 %tmp5, 5 %idxprom5 = sext i32 %add4 to i64 - %arrayidx6 = getelementptr inbounds [7 x i32] addrspace(2)* @g_50, i32 0, i64 %idxprom5 + %arrayidx6 = getelementptr inbounds [7 x i32], [7 x i32] addrspace(2)* @g_50, i32 0, i64 %idxprom5 store i32 %tmp2, i32 addrspace(2)* %arrayidx6, align 4 %inc = add nsw i32 %tmp5, 1 %cmp = icmp slt i32 %inc, 2 br i1 %cmp, label %for.body, label %for.end for.end: ; preds = %for.inc - %tmp8 = load i32 addrspace(2)* getelementptr inbounds ([7 x i32] addrspace(2)* @g_50, i32 0, i64 6), align 4 + %tmp8 = load i32, i32 addrspace(2)* getelementptr inbounds ([7 x i32], [7 x i32] addrspace(2)* @g_50, i32 0, i64 6), align 4 ret i32 %tmp8 } diff --git a/test/Transforms/LoopIdiom/basic.ll b/test/Transforms/LoopIdiom/basic.ll index 835a9f6..488cffc 100644 --- a/test/Transforms/LoopIdiom/basic.ll +++ b/test/Transforms/LoopIdiom/basic.ll @@ -1,5 +1,12 @@ ; RUN: opt -basicaa -loop-idiom < %s -S | FileCheck %s target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" + +; For @test11_pattern +; CHECK: @.memset_pattern = private unnamed_addr constant [4 x i32] [i32 1, i32 1, i32 1, i32 1] + +; For @test13_pattern +; CHECK: @.memset_pattern1 = private unnamed_addr constant [2 x i32*] [i32* @G, i32* @G] + target triple = "x86_64-apple-darwin10.0.0" define void @test1(i8* %Base, i64 %Size) nounwind ssp { @@ -8,7 +15,7 @@ bb.nph: ; preds = %entry for.body: ; preds = %bb.nph, %for.body %indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %for.body ] - %I.0.014 = getelementptr i8* %Base, i64 %indvar + %I.0.014 = getelementptr i8, i8* %Base, i64 %indvar store i8 0, i8* %I.0.014, align 1 %indvar.next = add i64 %indvar, 1 %exitcond = icmp eq i64 %indvar.next, %Size @@ -29,7 +36,7 @@ bb.nph: ; preds = %entry for.body: ; preds = %bb.nph, %for.body %indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %for.body.cont ] - %I.0.014 = getelementptr i8* %Base, i64 %indvar + %I.0.014 = getelementptr i8, i8* %Base, i64 %indvar store i8 0, i8* %I.0.014, align 1 %indvar.next = add i64 %indvar, 1 br label %for.body.cont @@ -52,7 +59,7 @@ entry: for.body: ; preds = %entry, %for.body %i.011 = phi i64 [ %inc, %for.body ], [ 0, %entry ] - %add.ptr.i = getelementptr i32* %Base, i64 %i.011 + %add.ptr.i = getelementptr i32, i32* %Base, i64 %i.011 store i32 16843009, i32* %add.ptr.i, align 4 %inc = add nsw i64 %i.011, 1 %exitcond = icmp eq i64 %inc, %Size @@ -75,7 +82,7 @@ entry: for.body: ; preds = %entry, %for.body %i.011 = phi i64 [ %inc, %for.body ], [ 0, %entry ] - %add.ptr.i = getelementptr i32* %Base, i64 %i.011 + %add.ptr.i = getelementptr i32, i32* %Base, i64 %i.011 store i32 16843009, i32* %add.ptr.i, align 4 store i8 42, i8* %MayAlias @@ -94,12 +101,12 @@ for.end: ; preds = %entry ;; TODO: We should be able to promote this memset. Not yet though. define void @test4(i8* %Base) nounwind ssp { bb.nph: ; preds = %entry - %Base100 = getelementptr i8* %Base, i64 1000 + %Base100 = getelementptr i8, i8* %Base, i64 1000 br label %for.body for.body: ; preds = %bb.nph, %for.body %indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %for.body ] - %I.0.014 = getelementptr i8* %Base, i64 %indvar + %I.0.014 = getelementptr i8, i8* %Base, i64 %indvar store i8 0, i8* %I.0.014, align 1 ;; Store beyond the range memset, should be safe to promote. @@ -123,7 +130,7 @@ bb.nph: ; preds = %entry for.body: ; preds = %bb.nph, %for.body %indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %for.body ] - %I.0.014 = getelementptr i8* %Base, i64 %indvar + %I.0.014 = getelementptr i8, i8* %Base, i64 %indvar %V = trunc i64 %indvar to i8 store i8 %V, i8* %I.0.014, align 1 @@ -148,9 +155,9 @@ bb.nph: for.body: ; preds = %bb.nph, %for.body %indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %for.body ] - %I.0.014 = getelementptr i8* %Base, i64 %indvar - %DestI = getelementptr i8* %Dest, i64 %indvar - %V = load i8* %I.0.014, align 1 + %I.0.014 = getelementptr i8, i8* %Base, i64 %indvar + %DestI = getelementptr i8, i8* %Dest, i64 %indvar + %V = load i8, i8* %I.0.014, align 1 store i8 %V, i8* %DestI, align 1 %indvar.next = add i64 %indvar, 1 %exitcond = icmp eq i64 %indvar.next, %Size @@ -175,7 +182,7 @@ for.body: ; preds = %bb.nph, %for.body %indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %for.body.cont ] br label %for.body.cont for.body.cont: - %I.0.014 = getelementptr i8* %Base, i64 %indvar + %I.0.014 = getelementptr i8, i8* %Base, i64 %indvar store i8 0, i8* %I.0.014, align 1 %indvar.next = add i64 %indvar, 1 %exitcond = icmp eq i64 %indvar.next, %Size @@ -195,7 +202,7 @@ bb.nph: ; preds = %entry for.body: ; preds = %bb.nph, %for.body %indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %for.body ] - %PI = getelementptr i64* %Ptr, i64 %indvar + %PI = getelementptr i64, i64* %Ptr, i64 %indvar store i64 0, i64 *%PI %indvar.next = add i64 %indvar, 1 %exitcond = icmp eq i64 %indvar.next, 1 @@ -221,9 +228,9 @@ bb.nph: for.body: ; preds = %bb.nph, %for.body %indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %for.body ] - %I.0.014 = getelementptr i8* %Base, i64 %indvar - %DestI = getelementptr i8* %Dest, i64 %indvar - %V = load i8* %I.0.014, align 1 + %I.0.014 = getelementptr i8, i8* %Base, i64 %indvar + %DestI = getelementptr i8, i8* %Dest, i64 %indvar + %V = load i8, i8* %I.0.014, align 1 store i8 %V, i8* %DestI, align 1 ;; This store can clobber the input. @@ -254,7 +261,7 @@ for.body5: ; preds = %for.body5, %bb.nph %mul = mul nsw i32 %i.04, 100 %add = add nsw i32 %j.02, %mul %idxprom = sext i32 %add to i64 - %arrayidx = getelementptr inbounds i8* %X, i64 %idxprom + %arrayidx = getelementptr inbounds i8, i8* %X, i64 %idxprom store i8 0, i8* %arrayidx, align 1 %inc = add nsw i32 %j.02, 1 %cmp4 = icmp eq i32 %inc, 100 @@ -283,7 +290,7 @@ entry: for.body: ; preds = %entry, %for.body %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.body ] - %arrayidx = getelementptr i32* %P, i64 %indvar + %arrayidx = getelementptr i32, i32* %P, i64 %indvar store i32 1, i32* %arrayidx, align 4 %indvar.next = add i64 %indvar, 1 %exitcond = icmp eq i64 %indvar.next, 10000 @@ -306,7 +313,7 @@ entry: for.body: ; preds = %entry, %for.body %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.body ] - %arrayidx = getelementptr i32** %P, i64 %indvar + %arrayidx = getelementptr i32*, i32** %P, i64 %indvar store i32* null, i32** %arrayidx, align 4 %indvar.next = add i64 %indvar, 1 %exitcond = icmp eq i64 %indvar.next, 10000 @@ -332,7 +339,7 @@ entry: for.body: ; preds = %entry, %for.body %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.body ] - %arrayidx = getelementptr i32** %P, i64 %indvar + %arrayidx = getelementptr i32*, i32** %P, i64 %indvar store i32* @G, i32** %arrayidx, align 4 %indvar.next = add i64 %indvar, 1 %exitcond = icmp eq i64 %indvar.next, 10000 @@ -362,18 +369,18 @@ for.body: ; preds = %for.inc, %for.body. %tmp5 = phi i32 [ %inc, %for.body ], [ 0, %entry ] %add = add nsw i32 %tmp5, 4 %idxprom = sext i32 %add to i64 - %arrayidx = getelementptr inbounds [7 x i32]* @g_50, i32 0, i64 %idxprom - %tmp2 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds [7 x i32], [7 x i32]* @g_50, i32 0, i64 %idxprom + %tmp2 = load i32, i32* %arrayidx, align 4 %add4 = add nsw i32 %tmp5, 5 %idxprom5 = sext i32 %add4 to i64 - %arrayidx6 = getelementptr inbounds [7 x i32]* @g_50, i32 0, i64 %idxprom5 + %arrayidx6 = getelementptr inbounds [7 x i32], [7 x i32]* @g_50, i32 0, i64 %idxprom5 store i32 %tmp2, i32* %arrayidx6, align 4 %inc = add nsw i32 %tmp5, 1 %cmp = icmp slt i32 %inc, 2 br i1 %cmp, label %for.body, label %for.end for.end: ; preds = %for.inc - %tmp8 = load i32* getelementptr inbounds ([7 x i32]* @g_50, i32 0, i64 6), align 4 + %tmp8 = load i32, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @g_50, i32 0, i64 6), align 4 ret i32 %tmp8 ; CHECK-LABEL: @test14( ; CHECK: for.body: @@ -393,7 +400,7 @@ define void @PR14241(i32* %s, i64 %size) { entry: %end.idx = add i64 %size, -1 - %end.ptr = getelementptr inbounds i32* %s, i64 %end.idx + %end.ptr = getelementptr inbounds i32, i32* %s, i64 %end.idx br label %while.body ; CHECK-NOT: memcpy ; @@ -403,13 +410,13 @@ entry: while.body: %phi.ptr = phi i32* [ %s, %entry ], [ %next.ptr, %while.body ] - %src.ptr = getelementptr inbounds i32* %phi.ptr, i64 1 - %val = load i32* %src.ptr, align 4 + %src.ptr = getelementptr inbounds i32, i32* %phi.ptr, i64 1 + %val = load i32, i32* %src.ptr, align 4 ; CHECK: load - %dst.ptr = getelementptr inbounds i32* %phi.ptr, i64 0 + %dst.ptr = getelementptr inbounds i32, i32* %phi.ptr, i64 0 store i32 %val, i32* %dst.ptr, align 4 ; CHECK: store - %next.ptr = getelementptr inbounds i32* %phi.ptr, i64 1 + %next.ptr = getelementptr inbounds i32, i32* %phi.ptr, i64 1 %cmp = icmp eq i32* %next.ptr, %end.ptr br i1 %cmp, label %exit, label %while.body diff --git a/test/Transforms/LoopIdiom/crash.ll b/test/Transforms/LoopIdiom/crash.ll index 969adbc..c964aac 100644 --- a/test/Transforms/LoopIdiom/crash.ll +++ b/test/Transforms/LoopIdiom/crash.ll @@ -8,13 +8,13 @@ define void @test1(i64* %iwork, i64 %x) { bb0: %mul116 = mul nsw i64 %x, %x %incdec.ptr6.sum175 = add i64 42, %x - %arrayidx135 = getelementptr inbounds i64* %iwork, i64 %incdec.ptr6.sum175 + %arrayidx135 = getelementptr inbounds i64, i64* %iwork, i64 %incdec.ptr6.sum175 br label %bb1 bb1: %storemerge4226 = phi i64 [ 0, %bb0 ], [ %inc139, %bb1 ] store i64 1, i64* %arrayidx135, align 8 %incdec.ptr6.sum176 = add i64 %mul116, %storemerge4226 - %arrayidx137 = getelementptr inbounds i64* %iwork, i64 %incdec.ptr6.sum176 + %arrayidx137 = getelementptr inbounds i64, i64* %iwork, i64 %incdec.ptr6.sum176 store i64 1, i64* %arrayidx137, align 8 %inc139 = add nsw i64 %storemerge4226, 1 %cmp131 = icmp sgt i64 %storemerge4226, 42 diff --git a/test/Transforms/LoopIdiom/debug-line.ll b/test/Transforms/LoopIdiom/debug-line.ll index 863df3c..84bfafd 100644 --- a/test/Transforms/LoopIdiom/debug-line.ll +++ b/test/Transforms/LoopIdiom/debug-line.ll @@ -5,13 +5,13 @@ target triple = "x86_64-apple-darwin10.0.0" define void @foo(double* nocapture %a) nounwind ssp { entry: - tail call void @llvm.dbg.value(metadata double* %a, i64 0, metadata !5, metadata !{}), !dbg !8 - tail call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !10, metadata !{}), !dbg !14 + tail call void @llvm.dbg.value(metadata double* %a, i64 0, metadata !5, metadata !MDExpression()), !dbg !8 + tail call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !10, metadata !MDExpression()), !dbg !14 br label %for.body for.body: ; preds = %entry, %for.body %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.body ] - %arrayidx = getelementptr double* %a, i64 %indvar + %arrayidx = getelementptr double, double* %a, i64 %indvar ; CHECK: call void @llvm.memset{{.+}} !dbg store double 0.000000e+00, double* %arrayidx, align 8, !dbg !15 %indvar.next = add i64 %indvar, 1 @@ -19,7 +19,7 @@ for.body: ; preds = %entry, %for.body br i1 %exitcond, label %for.body, label %for.end, !dbg !14 for.end: ; preds = %for.body - tail call void @llvm.dbg.value(metadata !{null}, i64 0, metadata !10, metadata !{}), !dbg !16 + tail call void @llvm.dbg.value(metadata !{null}, i64 0, metadata !10, metadata !MDExpression()), !dbg !16 ret void, !dbg !17 } @@ -30,23 +30,23 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon !llvm.module.flags = !{!19} !llvm.dbg.sp = !{!0} -!0 = !{!"0x2e\00foo\00foo\00\002\000\001\000\006\00256\000\000", !18, !1, !3, null, void (double*)* @foo, null, null, null} ; [ DW_TAG_subprogram ] [line 2] [def] [scope 0] [foo] -!1 = !{!"0x29", !18} ; [ DW_TAG_file_type ] -!2 = !{!"0x11\0012\00clang version 2.9 (trunk 127165:127174)\001\00\000\00\000", !18, !9, !9, null, null, null} ; [ DW_TAG_compile_unit ] -!3 = !{!"0x15\00\000\000\000\000\000\000", !18, !1, null, !4, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!0 = !MDSubprogram(name: "foo", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !18, scope: !1, type: !3, function: void (double*)* @foo) +!1 = !MDFile(filename: "li.c", directory: "/private/tmp") +!2 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 127165:127174)", isOptimized: true, emissionKind: 0, file: !18, enums: !9, retainedTypes: !9) +!3 = !MDSubroutineType(types: !4) !4 = !{null} -!5 = !{!"0x101\00a\0016777218\000", !0, !1, !6} ; [ DW_TAG_arg_variable ] -!6 = !{!"0xf\00\000\0064\0064\000\000", null, !2, !7} ; [ DW_TAG_pointer_type ] -!7 = !{!"0x24\00double\000\0064\0064\000\000\004", null, !2} ; [ DW_TAG_base_type ] +!5 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "a", line: 2, arg: 1, scope: !0, file: !1, type: !6) +!6 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, scope: !2, baseType: !7) +!7 = !MDBasicType(tag: DW_TAG_base_type, name: "double", size: 64, align: 64, encoding: DW_ATE_float) !8 = !MDLocation(line: 2, column: 18, scope: !0) !9 = !{i32 0} -!10 = !{!"0x100\00i\003\000", !11, !1, !13} ; [ DW_TAG_auto_variable ] -!11 = !{!"0xb\003\003\001", !18, !12} ; [ DW_TAG_lexical_block ] -!12 = !{!"0xb\002\0021\000", !18, !0} ; [ DW_TAG_lexical_block ] -!13 = !{!"0x24\00int\000\0032\0032\000\000\005", null, !2} ; [ DW_TAG_base_type ] +!10 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "i", line: 3, scope: !11, file: !1, type: !13) +!11 = distinct !MDLexicalBlock(line: 3, column: 3, file: !18, scope: !12) +!12 = distinct !MDLexicalBlock(line: 2, column: 21, file: !18, scope: !0) +!13 = !MDBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !14 = !MDLocation(line: 3, column: 3, scope: !12) !15 = !MDLocation(line: 4, column: 5, scope: !11) !16 = !MDLocation(line: 3, column: 29, scope: !11) !17 = !MDLocation(line: 5, column: 1, scope: !12) -!18 = !{!"li.c", !"/private/tmp"} -!19 = !{i32 1, !"Debug Info Version", i32 2} +!18 = !MDFile(filename: "li.c", directory: "/private/tmp") +!19 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/test/Transforms/LoopIdiom/memset_noidiom.ll b/test/Transforms/LoopIdiom/memset_noidiom.ll index f2b55ae..f039d99 100644 --- a/test/Transforms/LoopIdiom/memset_noidiom.ll +++ b/test/Transforms/LoopIdiom/memset_noidiom.ll @@ -15,7 +15,7 @@ for.body.lr.ph: ; preds = %entry for.body: ; preds = %for.body.lr.ph, %for.body %indvar = phi i64 [ 0, %for.body.lr.ph ], [ %indvar.next, %for.body ] - %p.02 = getelementptr i8* %b, i64 %indvar + %p.02 = getelementptr i8, i8* %b, i64 %indvar store i8 %conv6, i8* %p.02, align 1 %indvar.next = add i64 %indvar, 1 %exitcond = icmp ne i64 %indvar.next, %len diff --git a/test/Transforms/LoopIdiom/non-canonical-loop.ll b/test/Transforms/LoopIdiom/non-canonical-loop.ll index a6a4f92..77c818f 100644 --- a/test/Transforms/LoopIdiom/non-canonical-loop.ll +++ b/test/Transforms/LoopIdiom/non-canonical-loop.ll @@ -20,7 +20,7 @@ start.exit: ; preds = %entry for.bodyprime: ; preds = %for.bodyprime, %start.exit %i.057375 = phi i32 [ 0, %start.exit ], [ %1, %for.bodyprime ] - %arrayidx8prime = getelementptr inbounds i32* %currMB, i32 %i.057375 + %arrayidx8prime = getelementptr inbounds i32, i32* %currMB, i32 %i.057375 store i32 0, i32* %arrayidx8prime, align 4 %1 = add i32 %i.057375, 1 %cmp5prime = icmp slt i32 %1, 4 diff --git a/test/Transforms/LoopIdiom/scev-invalidation.ll b/test/Transforms/LoopIdiom/scev-invalidation.ll index a244d9a..2fe8a30 100644 --- a/test/Transforms/LoopIdiom/scev-invalidation.ll +++ b/test/Transforms/LoopIdiom/scev-invalidation.ll @@ -11,7 +11,7 @@ for.cond: ; preds = %for.inc, %entry %backslashes.0 = phi i32 [ undef, %entry ], [ %backslashes.2, %for.inc ] %p.0 = phi i8* [ undef, %entry ], [ %incdec.ptr3, %for.inc ] %q.0 = phi i8* [ undef, %entry ], [ %q.2, %for.inc ] - %0 = load i8* %p.0, align 1 + %0 = load i8, i8* %p.0, align 1 switch i8 %0, label %while.cond.preheader [ i8 0, label %for.cond4.preheader i8 92, label %for.inc @@ -36,7 +36,7 @@ for.body6.lr.ph: ; preds = %for.cond4.preheader while.body: ; preds = %while.body.lr.ph, %while.body %q.112 = phi i8* [ %q.0, %while.body.lr.ph ], [ %incdec.ptr, %while.body ] %backslashes.111 = phi i32 [ %backslashes.0, %while.body.lr.ph ], [ %dec, %while.body ] - %incdec.ptr = getelementptr inbounds i8* %q.112, i64 1 + %incdec.ptr = getelementptr inbounds i8, i8* %q.112, i64 1 store i8 92, i8* %incdec.ptr, align 1 %dec = add nsw i32 %backslashes.111, -1 %tobool2 = icmp eq i32 %dec, 0 @@ -44,7 +44,7 @@ while.body: ; preds = %while.body.lr.ph, % while.cond.for.inc.loopexit_crit_edge: ; preds = %while.body %scevgep.sum = add i64 %2, 1 - %scevgep13 = getelementptr i8* %q.0, i64 %scevgep.sum + %scevgep13 = getelementptr i8, i8* %q.0, i64 %scevgep.sum br label %for.inc.loopexit for.inc.loopexit: ; preds = %while.cond.for.inc.loopexit_crit_edge, %while.cond.preheader @@ -54,13 +54,13 @@ for.inc.loopexit: ; preds = %while.cond.for.inc. for.inc: ; preds = %for.inc.loopexit, %for.cond %backslashes.2 = phi i32 [ %backslashes.0, %for.cond ], [ 0, %for.inc.loopexit ] %q.2 = phi i8* [ %q.0, %for.cond ], [ %q.1.lcssa, %for.inc.loopexit ] - %incdec.ptr3 = getelementptr inbounds i8* %p.0, i64 1 + %incdec.ptr3 = getelementptr inbounds i8, i8* %p.0, i64 1 br label %for.cond for.body6: ; preds = %for.body6.lr.ph, %for.body6 %q.39 = phi i8* [ %q.0, %for.body6.lr.ph ], [ %incdec.ptr7, %for.body6 ] %backslashes.38 = phi i32 [ %backslashes.0, %for.body6.lr.ph ], [ %dec9, %for.body6 ] - %incdec.ptr7 = getelementptr inbounds i8* %q.39, i64 1 + %incdec.ptr7 = getelementptr inbounds i8, i8* %q.39, i64 1 store i8 92, i8* %incdec.ptr7, align 1 %dec9 = add nsw i32 %backslashes.38, -1 %tobool5 = icmp eq i32 %dec9, 0 |