mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 17:32:19 +00:00
TBAA: remove !tbaa from testing cases if not used.
This will make it easier to turn on struct-path aware TBAA since the metadata format will change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180935 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f9bccc2f1a
commit
436849be6a
@ -18,8 +18,8 @@ loop.cond: ; preds = %test.exit, %entry
|
||||
br i1 %3, label %return, label %loop
|
||||
|
||||
loop: ; preds = %loop.cond
|
||||
%4 = load i64* addrspace(256)* inttoptr (i64 264 to i64* addrspace(256)*), align 8, !tbaa !0
|
||||
%5 = load i64* %4, align 8, !tbaa !3
|
||||
%4 = load i64* addrspace(256)* inttoptr (i64 264 to i64* addrspace(256)*), align 8
|
||||
%5 = load i64* %4, align 8
|
||||
%vector.size.i = ashr i64 %5, 3
|
||||
%num.vector.wi.i = shl i64 %vector.size.i, 3
|
||||
%6 = icmp eq i64 %vector.size.i, 0
|
||||
@ -65,8 +65,8 @@ scalarIf.i: ; preds = %vector_kernel_entry
|
||||
br i1 %18, label %test.exit, label %dim_0_pre_head.i
|
||||
|
||||
dim_0_pre_head.i: ; preds = %scalarIf.i
|
||||
%19 = load i64* addrspace(256)* inttoptr (i64 264 to i64* addrspace(256)*), align 8, !tbaa !0
|
||||
%20 = load i64* %19, align 8, !tbaa !3
|
||||
%19 = load i64* addrspace(256)* inttoptr (i64 264 to i64* addrspace(256)*), align 8
|
||||
%20 = load i64* %19, align 8
|
||||
%21 = trunc i64 %20 to i32
|
||||
%22 = mul i64 %vector.size.i, 8
|
||||
br label %scalar_kernel_entry.i
|
||||
@ -76,10 +76,10 @@ scalar_kernel_entry.i: ; preds = %scalar_kernel_entry
|
||||
%23 = bitcast i8* %asr.iv6 to i32 addrspace(1)*
|
||||
%24 = bitcast i8* %ptrtoarg4 to i32 addrspace(1)*
|
||||
%scevgep16 = getelementptr i32 addrspace(1)* %23, i64 %asr.iv12
|
||||
%25 = load i32 addrspace(1)* %scevgep16, align 4, !tbaa !4
|
||||
%25 = load i32 addrspace(1)* %scevgep16, align 4
|
||||
%26 = atomicrmw min i32 addrspace(1)* %24, i32 %25 seq_cst
|
||||
%scevgep15 = getelementptr i32 addrspace(1)* %23, i64 %asr.iv12
|
||||
store i32 %21, i32 addrspace(1)* %scevgep15, align 4, !tbaa !4
|
||||
store i32 %21, i32 addrspace(1)* %scevgep15, align 4
|
||||
%asr.iv.next13 = add i64 %asr.iv12, 1
|
||||
%dim_0_cmp.to.max.i = icmp eq i64 %5, %asr.iv.next13
|
||||
br i1 %dim_0_cmp.to.max.i, label %test.exit, label %scalar_kernel_entry.i
|
||||
@ -97,12 +97,6 @@ return: ; preds = %loop.cond
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!3 = metadata !{metadata !"long", metadata !1}
|
||||
!4 = metadata !{metadata !"int", metadata !1}
|
||||
|
||||
; CHECK: test
|
||||
; CHECK: decq
|
||||
; CHECK-NOT: cmpxchgl
|
||||
|
@ -8,9 +8,9 @@ entry:
|
||||
; CHECK: decq (%{{rdi|rcx}})
|
||||
; CHECK-NEXT: je
|
||||
%refcnt = getelementptr inbounds %struct.obj* %o, i64 0, i32 0
|
||||
%0 = load i64* %refcnt, align 8, !tbaa !0
|
||||
%0 = load i64* %refcnt, align 8
|
||||
%dec = add i64 %0, -1
|
||||
store i64 %dec, i64* %refcnt, align 8, !tbaa !0
|
||||
store i64 %dec, i64* %refcnt, align 8
|
||||
%tobool = icmp eq i64 %dec, 0
|
||||
br i1 %tobool, label %if.end, label %return
|
||||
|
||||
@ -33,12 +33,12 @@ define i32 @test() nounwind uwtable ssp {
|
||||
entry:
|
||||
; CHECK: decq
|
||||
; CHECK-NOT: decq
|
||||
%0 = load i64* @c, align 8, !tbaa !0
|
||||
%0 = load i64* @c, align 8
|
||||
%dec.i = add nsw i64 %0, -1
|
||||
store i64 %dec.i, i64* @c, align 8, !tbaa !0
|
||||
store i64 %dec.i, i64* @c, align 8
|
||||
%tobool.i = icmp ne i64 %dec.i, 0
|
||||
%lor.ext.i = zext i1 %tobool.i to i32
|
||||
store i32 %lor.ext.i, i32* @a, align 4, !tbaa !3
|
||||
store i32 %lor.ext.i, i32* @a, align 4
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([5 x i8]* @.str, i64 0, i64 0), i64 %dec.i) nounwind
|
||||
ret i32 0
|
||||
}
|
||||
@ -47,12 +47,12 @@ ret i32 0
|
||||
define i32 @test2() nounwind uwtable ssp {
|
||||
entry:
|
||||
; CHECK-NOT: decq ({{.*}})
|
||||
%0 = load i64* @c, align 8, !tbaa !0
|
||||
%0 = load i64* @c, align 8
|
||||
%dec.i = add nsw i64 %0, -1
|
||||
store i64 %dec.i, i64* @c, align 8, !tbaa !0
|
||||
store i64 %dec.i, i64* @c, align 8
|
||||
%tobool.i = icmp ne i64 %0, 0
|
||||
%lor.ext.i = zext i1 %tobool.i to i32
|
||||
store i32 %lor.ext.i, i32* @a, align 4, !tbaa !3
|
||||
store i32 %lor.ext.i, i32* @a, align 4
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([5 x i8]* @.str, i64 0, i64 0), i64 %dec.i) nounwind
|
||||
ret i32 0
|
||||
}
|
||||
@ -61,11 +61,6 @@ declare i32 @printf(i8* nocapture, ...) nounwind
|
||||
|
||||
declare void @free(i8* nocapture) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"long", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!3 = metadata !{metadata !"int", metadata !1}
|
||||
|
||||
%struct.obj2 = type { i64, i32, i16, i8 }
|
||||
|
||||
declare void @other(%struct.obj2* ) nounwind;
|
||||
|
@ -50,12 +50,12 @@ while.body: ; preds = %uw_update_context.e
|
||||
]
|
||||
|
||||
if.end3: ; preds = %while.body
|
||||
%4 = load i32 (i32, i32, i64, %struct._Unwind_Exception*, %struct._Unwind_Context*)** %personality, align 8, !tbaa !0
|
||||
%4 = load i32 (i32, i32, i64, %struct._Unwind_Exception*, %struct._Unwind_Context*)** %personality, align 8
|
||||
%tobool = icmp eq i32 (i32, i32, i64, %struct._Unwind_Exception*, %struct._Unwind_Context*)* %4, null
|
||||
br i1 %tobool, label %if.end13, label %if.then4
|
||||
|
||||
if.then4: ; preds = %if.end3
|
||||
%5 = load i64* %exception_class, align 8, !tbaa !3
|
||||
%5 = load i64* %exception_class, align 8
|
||||
%call6 = call i32 %4(i32 1, i32 1, i64 %5, %struct._Unwind_Exception* %exc, %struct._Unwind_Context* %cur_context)
|
||||
switch i32 %call6, label %do.end21.loopexit46 [
|
||||
i32 6, label %while.end
|
||||
@ -64,7 +64,7 @@ if.then4: ; preds = %if.end3
|
||||
|
||||
if.end13: ; preds = %if.then4, %if.end3
|
||||
call fastcc void @uw_update_context_1(%struct._Unwind_Context* %cur_context, %struct._Unwind_FrameState* %fs)
|
||||
%6 = load i64* %retaddr_column.i, align 8, !tbaa !3
|
||||
%6 = load i64* %retaddr_column.i, align 8
|
||||
%conv.i = trunc i64 %6 to i32
|
||||
%cmp.i.i.i = icmp slt i32 %conv.i, 18
|
||||
br i1 %cmp.i.i.i, label %cond.end.i.i.i, label %cond.true.i.i.i
|
||||
@ -77,17 +77,17 @@ cond.end.i.i.i: ; preds = %if.end13
|
||||
%sext.i = shl i64 %6, 32
|
||||
%idxprom.i.i.i = ashr exact i64 %sext.i, 32
|
||||
%arrayidx.i.i.i = getelementptr inbounds [18 x i8]* @dwarf_reg_size_table, i64 0, i64 %idxprom.i.i.i
|
||||
%7 = load i8* %arrayidx.i.i.i, align 1, !tbaa !1
|
||||
%7 = load i8* %arrayidx.i.i.i, align 1
|
||||
%arrayidx2.i.i.i = getelementptr inbounds %struct._Unwind_Context* %cur_context, i64 0, i32 0, i64 %idxprom.i.i.i
|
||||
%8 = load i8** %arrayidx2.i.i.i, align 8, !tbaa !0
|
||||
%9 = load i64* %flags.i.i.i.i, align 8, !tbaa !3
|
||||
%8 = load i8** %arrayidx2.i.i.i, align 8
|
||||
%9 = load i64* %flags.i.i.i.i, align 8
|
||||
%and.i.i.i.i = and i64 %9, 4611686018427387904
|
||||
%tobool.i.i.i = icmp eq i64 %and.i.i.i.i, 0
|
||||
br i1 %tobool.i.i.i, label %if.end.i.i.i, label %land.lhs.true.i.i.i
|
||||
|
||||
land.lhs.true.i.i.i: ; preds = %cond.end.i.i.i
|
||||
%arrayidx4.i.i.i = getelementptr inbounds %struct._Unwind_Context* %cur_context, i64 0, i32 8, i64 %idxprom.i.i.i
|
||||
%10 = load i8* %arrayidx4.i.i.i, align 1, !tbaa !1
|
||||
%10 = load i8* %arrayidx4.i.i.i, align 1
|
||||
%tobool6.i.i.i = icmp eq i8 %10, 0
|
||||
br i1 %tobool6.i.i.i, label %if.end.i.i.i, label %if.then.i.i.i
|
||||
|
||||
@ -101,7 +101,7 @@ if.end.i.i.i: ; preds = %land.lhs.true.i.i.i
|
||||
|
||||
if.then10.i.i.i: ; preds = %if.end.i.i.i
|
||||
%12 = bitcast i8* %8 to i64*
|
||||
%13 = load i64* %12, align 8, !tbaa !3
|
||||
%13 = load i64* %12, align 8
|
||||
br label %uw_update_context.exit
|
||||
|
||||
cond.true14.i.i.i: ; preds = %if.end.i.i.i
|
||||
@ -111,16 +111,16 @@ cond.true14.i.i.i: ; preds = %if.end.i.i.i
|
||||
uw_update_context.exit: ; preds = %if.then10.i.i.i, %if.then.i.i.i
|
||||
%retval.0.i.i.i = phi i64 [ %11, %if.then.i.i.i ], [ %13, %if.then10.i.i.i ]
|
||||
%14 = inttoptr i64 %retval.0.i.i.i to i8*
|
||||
store i8* %14, i8** %ra.i, align 8, !tbaa !0
|
||||
store i8* %14, i8** %ra.i, align 8
|
||||
br label %while.body
|
||||
|
||||
while.end: ; preds = %if.then4
|
||||
%private_1 = getelementptr inbounds %struct._Unwind_Exception* %exc, i64 0, i32 2
|
||||
store i64 0, i64* %private_1, align 8, !tbaa !3
|
||||
%15 = load i8** %ra.i, align 8, !tbaa !0
|
||||
store i64 0, i64* %private_1, align 8
|
||||
%15 = load i8** %ra.i, align 8
|
||||
%16 = ptrtoint i8* %15 to i64
|
||||
%private_2 = getelementptr inbounds %struct._Unwind_Exception* %exc, i64 0, i32 3
|
||||
store i64 %16, i64* %private_2, align 8, !tbaa !3
|
||||
store i64 %16, i64* %private_2, align 8
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %3, i64 240, i32 8, i1 false)
|
||||
%17 = bitcast %struct._Unwind_FrameState* %fs.i to i8*
|
||||
call void @llvm.lifetime.start(i64 -1, i8* %17)
|
||||
@ -130,21 +130,21 @@ while.end: ; preds = %if.then4
|
||||
|
||||
while.body.i: ; preds = %uw_update_context.exit44, %while.end
|
||||
%call.i = call fastcc i32 @uw_frame_state_for(%struct._Unwind_Context* %cur_context, %struct._Unwind_FrameState* %fs.i)
|
||||
%18 = load i8** %ra.i, align 8, !tbaa !0
|
||||
%18 = load i8** %ra.i, align 8
|
||||
%19 = ptrtoint i8* %18 to i64
|
||||
%20 = load i64* %private_2, align 8, !tbaa !3
|
||||
%20 = load i64* %private_2, align 8
|
||||
%cmp.i = icmp eq i64 %19, %20
|
||||
%cmp2.i = icmp eq i32 %call.i, 0
|
||||
br i1 %cmp2.i, label %if.end.i, label %do.end21
|
||||
|
||||
if.end.i: ; preds = %while.body.i
|
||||
%21 = load i32 (i32, i32, i64, %struct._Unwind_Exception*, %struct._Unwind_Context*)** %personality.i, align 8, !tbaa !0
|
||||
%21 = load i32 (i32, i32, i64, %struct._Unwind_Exception*, %struct._Unwind_Context*)** %personality.i, align 8
|
||||
%tobool.i = icmp eq i32 (i32, i32, i64, %struct._Unwind_Exception*, %struct._Unwind_Context*)* %21, null
|
||||
br i1 %tobool.i, label %if.end12.i, label %if.then3.i
|
||||
|
||||
if.then3.i: ; preds = %if.end.i
|
||||
%or.i = select i1 %cmp.i, i32 6, i32 2
|
||||
%22 = load i64* %exception_class, align 8, !tbaa !3
|
||||
%22 = load i64* %exception_class, align 8
|
||||
%call5.i = call i32 %21(i32 1, i32 %or.i, i64 %22, %struct._Unwind_Exception* %exc, %struct._Unwind_Context* %cur_context)
|
||||
switch i32 %call5.i, label %do.end21 [
|
||||
i32 7, label %do.body19
|
||||
@ -160,7 +160,7 @@ cond.true.i: ; preds = %if.end12.i
|
||||
|
||||
cond.end.i: ; preds = %if.end12.i
|
||||
call fastcc void @uw_update_context_1(%struct._Unwind_Context* %cur_context, %struct._Unwind_FrameState* %fs.i)
|
||||
%23 = load i64* %retaddr_column.i22, align 8, !tbaa !3
|
||||
%23 = load i64* %retaddr_column.i22, align 8
|
||||
%conv.i23 = trunc i64 %23 to i32
|
||||
%cmp.i.i.i24 = icmp slt i32 %conv.i23, 18
|
||||
br i1 %cmp.i.i.i24, label %cond.end.i.i.i33, label %cond.true.i.i.i25
|
||||
@ -173,17 +173,17 @@ cond.end.i.i.i33: ; preds = %cond.end.i
|
||||
%sext.i26 = shl i64 %23, 32
|
||||
%idxprom.i.i.i27 = ashr exact i64 %sext.i26, 32
|
||||
%arrayidx.i.i.i28 = getelementptr inbounds [18 x i8]* @dwarf_reg_size_table, i64 0, i64 %idxprom.i.i.i27
|
||||
%24 = load i8* %arrayidx.i.i.i28, align 1, !tbaa !1
|
||||
%24 = load i8* %arrayidx.i.i.i28, align 1
|
||||
%arrayidx2.i.i.i29 = getelementptr inbounds %struct._Unwind_Context* %cur_context, i64 0, i32 0, i64 %idxprom.i.i.i27
|
||||
%25 = load i8** %arrayidx2.i.i.i29, align 8, !tbaa !0
|
||||
%26 = load i64* %flags.i.i.i.i, align 8, !tbaa !3
|
||||
%25 = load i8** %arrayidx2.i.i.i29, align 8
|
||||
%26 = load i64* %flags.i.i.i.i, align 8
|
||||
%and.i.i.i.i31 = and i64 %26, 4611686018427387904
|
||||
%tobool.i.i.i32 = icmp eq i64 %and.i.i.i.i31, 0
|
||||
br i1 %tobool.i.i.i32, label %if.end.i.i.i39, label %land.lhs.true.i.i.i36
|
||||
|
||||
land.lhs.true.i.i.i36: ; preds = %cond.end.i.i.i33
|
||||
%arrayidx4.i.i.i34 = getelementptr inbounds %struct._Unwind_Context* %cur_context, i64 0, i32 8, i64 %idxprom.i.i.i27
|
||||
%27 = load i8* %arrayidx4.i.i.i34, align 1, !tbaa !1
|
||||
%27 = load i8* %arrayidx4.i.i.i34, align 1
|
||||
%tobool6.i.i.i35 = icmp eq i8 %27, 0
|
||||
br i1 %tobool6.i.i.i35, label %if.end.i.i.i39, label %if.then.i.i.i37
|
||||
|
||||
@ -197,7 +197,7 @@ if.end.i.i.i39: ; preds = %land.lhs.true.i.i.i
|
||||
|
||||
if.then10.i.i.i40: ; preds = %if.end.i.i.i39
|
||||
%29 = bitcast i8* %25 to i64*
|
||||
%30 = load i64* %29, align 8, !tbaa !3
|
||||
%30 = load i64* %29, align 8
|
||||
br label %uw_update_context.exit44
|
||||
|
||||
cond.true14.i.i.i41: ; preds = %if.end.i.i.i39
|
||||
@ -207,13 +207,13 @@ cond.true14.i.i.i41: ; preds = %if.end.i.i.i39
|
||||
uw_update_context.exit44: ; preds = %if.then10.i.i.i40, %if.then.i.i.i37
|
||||
%retval.0.i.i.i42 = phi i64 [ %28, %if.then.i.i.i37 ], [ %30, %if.then10.i.i.i40 ]
|
||||
%31 = inttoptr i64 %retval.0.i.i.i42 to i8*
|
||||
store i8* %31, i8** %ra.i, align 8, !tbaa !0
|
||||
store i8* %31, i8** %ra.i, align 8
|
||||
br label %while.body.i
|
||||
|
||||
do.body19: ; preds = %if.then3.i
|
||||
call void @llvm.lifetime.end(i64 -1, i8* %17)
|
||||
%call20 = call fastcc i64 @uw_install_context_1(%struct._Unwind_Context* %this_context, %struct._Unwind_Context* %cur_context)
|
||||
%32 = load i8** %ra.i, align 8, !tbaa !0
|
||||
%32 = load i8** %ra.i, align 8
|
||||
call void @llvm.eh.return.i64(i64 %call20, i8* %32)
|
||||
unreachable
|
||||
|
||||
@ -245,8 +245,3 @@ declare fastcc void @uw_update_context_1(%struct._Unwind_Context*, %struct._Unwi
|
||||
declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind
|
||||
|
||||
declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!3 = metadata !{metadata !"long", metadata !1}
|
||||
|
@ -22,10 +22,10 @@ entry:
|
||||
tail call void @llvm.dbg.value(metadata !{%struct.S1* %sp}, i64 0, metadata !9), !dbg !20
|
||||
tail call void @llvm.dbg.value(metadata !{i32 %nums}, i64 0, metadata !18), !dbg !21
|
||||
%tmp2 = getelementptr inbounds %struct.S1* %sp, i64 0, i32 1, !dbg !22
|
||||
store i32 %nums, i32* %tmp2, align 4, !dbg !22, !tbaa !24
|
||||
store i32 %nums, i32* %tmp2, align 4, !dbg !22
|
||||
%call = tail call float* @bar(i32 %nums) nounwind optsize, !dbg !27
|
||||
%tmp5 = getelementptr inbounds %struct.S1* %sp, i64 0, i32 0, !dbg !27
|
||||
store float* %call, float** %tmp5, align 8, !dbg !27, !tbaa !28
|
||||
store float* %call, float** %tmp5, align 8, !dbg !27
|
||||
%cmp = icmp ne float* %call, null, !dbg !29
|
||||
%cond = zext i1 %cmp to i32, !dbg !29
|
||||
ret i32 %cond, !dbg !29
|
||||
@ -37,9 +37,9 @@ define void @foobar() nounwind optsize ssp {
|
||||
entry:
|
||||
tail call void @llvm.dbg.value(metadata !30, i64 0, metadata !9) nounwind, !dbg !31
|
||||
tail call void @llvm.dbg.value(metadata !34, i64 0, metadata !18) nounwind, !dbg !35
|
||||
store i32 1, i32* getelementptr inbounds (%struct.S1* @p, i64 0, i32 1), align 8, !dbg !36, !tbaa !24
|
||||
store i32 1, i32* getelementptr inbounds (%struct.S1* @p, i64 0, i32 1), align 8, !dbg !36
|
||||
%call.i = tail call float* @bar(i32 1) nounwind optsize, !dbg !37
|
||||
store float* %call.i, float** getelementptr inbounds (%struct.S1* @p, i64 0, i32 0), align 8, !dbg !37, !tbaa !28
|
||||
store float* %call.i, float** getelementptr inbounds (%struct.S1* @p, i64 0, i32 0), align 8, !dbg !37
|
||||
ret void, !dbg !38
|
||||
}
|
||||
|
||||
@ -71,11 +71,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
|
||||
!21 = metadata !{i32 7, i32 21, metadata !0, null}
|
||||
!22 = metadata !{i32 9, i32 3, metadata !23, null}
|
||||
!23 = metadata !{i32 786443, metadata !1, metadata !0, i32 8, i32 1, i32 0} ; [ DW_TAG_lexical_block ]
|
||||
!24 = metadata !{metadata !"int", metadata !25}
|
||||
!25 = metadata !{metadata !"omnipotent char", metadata !26}
|
||||
!26 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!27 = metadata !{i32 10, i32 3, metadata !23, null}
|
||||
!28 = metadata !{metadata !"any pointer", metadata !25}
|
||||
!29 = metadata !{i32 11, i32 3, metadata !23, null}
|
||||
!30 = metadata !{%struct.S1* @p}
|
||||
!31 = metadata !{i32 7, i32 13, metadata !0, metadata !32}
|
||||
|
@ -11,18 +11,18 @@ entry:
|
||||
%__dest.addr = alloca i8*, align 8
|
||||
%__val.addr = alloca i32, align 4
|
||||
%__len.addr = alloca i64, align 8
|
||||
store i8* %__dest, i8** %__dest.addr, align 8, !tbaa !1
|
||||
store i8* %__dest, i8** %__dest.addr, align 8
|
||||
; CHECK-NOT: call void @llvm.dbg.declare
|
||||
; CHECK: call void @llvm.dbg.value
|
||||
call void @llvm.dbg.declare(metadata !{i8** %__dest.addr}, metadata !0), !dbg !16
|
||||
store i32 %__val, i32* %__val.addr, align 4, !tbaa !17
|
||||
store i32 %__val, i32* %__val.addr, align 4
|
||||
call void @llvm.dbg.declare(metadata !{i32* %__val.addr}, metadata !7), !dbg !18
|
||||
store i64 %__len, i64* %__len.addr, align 8, !tbaa !19
|
||||
store i64 %__len, i64* %__len.addr, align 8
|
||||
call void @llvm.dbg.declare(metadata !{i64* %__len.addr}, metadata !9), !dbg !20
|
||||
%tmp = load i8** %__dest.addr, align 8, !dbg !21, !tbaa !13
|
||||
%tmp1 = load i32* %__val.addr, align 4, !dbg !21, !tbaa !17
|
||||
%tmp2 = load i64* %__len.addr, align 8, !dbg !21, !tbaa !19
|
||||
%tmp3 = load i8** %__dest.addr, align 8, !dbg !21, !tbaa !13
|
||||
%tmp = load i8** %__dest.addr, align 8, !dbg !21
|
||||
%tmp1 = load i32* %__val.addr, align 4, !dbg !21
|
||||
%tmp2 = load i64* %__len.addr, align 8, !dbg !21
|
||||
%tmp3 = load i8** %__dest.addr, align 8, !dbg !21
|
||||
%0 = call i64 @llvm.objectsize.i64(i8* %tmp3, i1 false), !dbg !21
|
||||
%call = call i8* @foo(i8* %tmp, i32 %tmp1, i64 %tmp2, i64 %0), !dbg !21
|
||||
ret i8* %call, !dbg !21
|
||||
@ -43,13 +43,8 @@ entry:
|
||||
!10 = metadata !{i32 589846, metadata !3, metadata !"size_t", metadata !2, i32 80, i64 0, i64 0, i64 0, i32 0, metadata !11} ; [ DW_TAG_typedef ]
|
||||
!11 = metadata !{i32 589846, metadata !3, metadata !"__darwin_size_t", metadata !2, i32 90, i64 0, i64 0, i64 0, i32 0, metadata !12} ; [ DW_TAG_typedef ]
|
||||
!12 = metadata !{i32 786468, metadata !3, metadata !"long unsigned int", null, i32 0, i64 64, i64 64, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ]
|
||||
!13 = metadata !{metadata !"any pointer", metadata !14}
|
||||
!14 = metadata !{metadata !"omnipotent char", metadata !15}
|
||||
!15 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!16 = metadata !{i32 78, i32 28, metadata !1, null}
|
||||
!17 = metadata !{metadata !"int", metadata !14}
|
||||
!18 = metadata !{i32 78, i32 40, metadata !1, null}
|
||||
!19 = metadata !{metadata !"long", metadata !14}
|
||||
!20 = metadata !{i32 78, i32 54, metadata !1, null}
|
||||
!21 = metadata !{i32 80, i32 3, metadata !22, null}
|
||||
!22 = metadata !{i32 786443, metadata !23, i32 80, i32 3, metadata !2, i32 7} ; [ DW_TAG_lexical_block ]
|
||||
|
@ -50,7 +50,7 @@ declare %s* @getstruct() nounwind
|
||||
; CHECK: ldr{{.*}}lsl #2
|
||||
define i32 @main() nounwind ssp {
|
||||
entry:
|
||||
%v0 = load i32* @ncol, align 4, !tbaa !0
|
||||
%v0 = load 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 @@ while.cond:
|
||||
br label %while.body
|
||||
|
||||
while.body:
|
||||
%v3 = load i32* @ncol, align 4, !tbaa !0
|
||||
%v3 = load i32* @ncol, align 4
|
||||
br label %end_of_chain
|
||||
|
||||
end_of_chain:
|
||||
%state.i = getelementptr inbounds %s* %call18, i32 0, i32 0
|
||||
%v4 = load i32** %state.i, align 4, !tbaa !3
|
||||
%v4 = load i32** %state.i, align 4
|
||||
br label %while.cond.i.i
|
||||
|
||||
while.cond.i.i:
|
||||
@ -80,9 +80,9 @@ while.cond.i.i:
|
||||
|
||||
land.rhs.i.i:
|
||||
%arrayidx.i.i = getelementptr inbounds i32* %v4, i32 %dec.i.i
|
||||
%v5 = load i32* %arrayidx.i.i, align 4, !tbaa !0
|
||||
%v5 = load i32* %arrayidx.i.i, align 4
|
||||
%arrayidx1.i.i = getelementptr inbounds i32* %v1, i32 %dec.i.i
|
||||
%v6 = load i32* %arrayidx1.i.i, align 4, !tbaa !0
|
||||
%v6 = load 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
|
||||
|
||||
@ -95,8 +95,3 @@ where.exit:
|
||||
while.end.i:
|
||||
ret i32 %v3
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!3 = metadata !{metadata !"any pointer", metadata !1}
|
||||
|
@ -24,7 +24,7 @@ entry:
|
||||
%3 = shl nsw i64 %indvars.iv, 2
|
||||
%4 = getelementptr inbounds i8* %1, i64 %3
|
||||
%5 = bitcast i8* %4 to float*
|
||||
store float %value, float* %5, align 4, !tbaa !0
|
||||
store float %value, float* %5, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, %2
|
||||
%6 = trunc i64 %indvars.iv.next to i32
|
||||
%7 = icmp slt i32 %6, %_n
|
||||
@ -43,7 +43,7 @@ entry:
|
||||
%0 = shl nsw i64 %indvars.iv, 2
|
||||
%1 = getelementptr inbounds i8* bitcast (float* getelementptr inbounds ([32000 x float]* @b, i64 0, i64 16000) to i8*), i64 %0
|
||||
%2 = bitcast i8* %1 to float*
|
||||
store float -1.000000e+00, float* %2, align 4, !tbaa !0
|
||||
store float -1.000000e+00, float* %2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, 16000
|
||||
@ -52,6 +52,3 @@ entry:
|
||||
"5": ; preds = %"3"
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"alias set 7: float", metadata !1}
|
||||
!1 = metadata !{metadata !1}
|
||||
|
@ -17,7 +17,7 @@ do.body: ; preds = %cond.end, %entry
|
||||
%n.addr.0 = phi i32 [ %n, %entry ], [ %dec, %cond.end ]
|
||||
%p.addr.0 = phi i16* [ %p, %entry ], [ %incdec.ptr, %cond.end ]
|
||||
%incdec.ptr = getelementptr inbounds i16* %p.addr.0, i64 -1
|
||||
%0 = load i16* %incdec.ptr, align 2, !tbaa !0
|
||||
%0 = load i16* %incdec.ptr, align 2
|
||||
%conv = zext i16 %0 to i32
|
||||
%cmp = icmp ult i32 %conv, %size
|
||||
br i1 %cmp, label %cond.end, label %cond.true
|
||||
@ -29,7 +29,7 @@ cond.true: ; preds = %do.body
|
||||
|
||||
cond.end: ; preds = %do.body, %cond.true
|
||||
%cond = phi i16 [ %phitmp, %cond.true ], [ 0, %do.body ]
|
||||
store i16 %cond, i16* %incdec.ptr, align 2, !tbaa !0
|
||||
store i16 %cond, i16* %incdec.ptr, align 2
|
||||
%dec = add i32 %n.addr.0, -1
|
||||
%tobool = icmp eq i32 %dec, 0
|
||||
br i1 %tobool, label %do.end, label %do.body
|
||||
@ -52,11 +52,11 @@ do.body: ; preds = %do.body, %entry
|
||||
%n.addr.0 = phi i32 [ %n, %entry ], [ %dec, %do.body ]
|
||||
%p.0 = phi i32* [ %a, %entry ], [ %incdec.ptr, %do.body ]
|
||||
%incdec.ptr = getelementptr inbounds i32* %p.0, i64 -1
|
||||
%0 = load i32* %incdec.ptr, align 4, !tbaa !3
|
||||
%0 = load i32* %incdec.ptr, align 4
|
||||
%cmp = icmp slt i32 %0, %wsize
|
||||
%sub = sub nsw i32 %0, %wsize
|
||||
%cond = select i1 %cmp, i32 0, i32 %sub
|
||||
store i32 %cond, i32* %incdec.ptr, align 4, !tbaa !3
|
||||
store i32 %cond, i32* %incdec.ptr, align 4
|
||||
%dec = add nsw i32 %n.addr.0, -1
|
||||
%tobool = icmp eq i32 %dec, 0
|
||||
br i1 %tobool, label %do.end, label %do.body
|
||||
@ -64,8 +64,3 @@ do.body: ; preds = %do.body, %entry
|
||||
do.end: ; preds = %do.body
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"short", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!3 = metadata !{metadata !"int", metadata !1}
|
||||
|
@ -14,10 +14,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.sqrt.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -40,10 +40,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.sqrt.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -66,10 +66,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.sin.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -92,10 +92,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.sin.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -118,10 +118,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.cos.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -144,10 +144,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.cos.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -170,10 +170,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.exp.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -196,10 +196,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.exp.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -222,10 +222,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.exp2.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -248,10 +248,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.exp2.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -274,10 +274,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.log.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -300,10 +300,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.log.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -326,10 +326,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.log10.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -352,10 +352,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.log10.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -378,10 +378,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.log2.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -404,10 +404,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.log2.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -430,10 +430,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.fabs.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -453,10 +453,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.fabs(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -479,10 +479,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.floor.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -505,10 +505,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.floor.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -531,10 +531,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.ceil.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -557,10 +557,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.ceil.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -583,10 +583,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.trunc.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -609,10 +609,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.trunc.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -635,10 +635,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.rint.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -661,10 +661,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.rint.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -687,10 +687,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%call = tail call float @llvm.nearbyint.f32(float %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx2, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -713,10 +713,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%call = tail call double @llvm.nearbyint.f64(double %0) nounwind readnone
|
||||
%arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx2, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx2, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -739,14 +739,14 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%arrayidx2 = getelementptr inbounds float* %w, i64 %indvars.iv
|
||||
%1 = load float* %arrayidx2, align 4, !tbaa !0
|
||||
%1 = load float* %arrayidx2, align 4
|
||||
%arrayidx4 = getelementptr inbounds float* %z, i64 %indvars.iv
|
||||
%2 = load float* %arrayidx4, align 4, !tbaa !0
|
||||
%2 = load float* %arrayidx4, align 4
|
||||
%3 = tail call float @llvm.fma.f32(float %0, float %2, float %1)
|
||||
%arrayidx6 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %3, float* %arrayidx6, align 4, !tbaa !0
|
||||
store float %3, float* %arrayidx6, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -769,14 +769,14 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%arrayidx2 = getelementptr inbounds double* %w, i64 %indvars.iv
|
||||
%1 = load double* %arrayidx2, align 8, !tbaa !3
|
||||
%1 = load double* %arrayidx2, align 8
|
||||
%arrayidx4 = getelementptr inbounds double* %z, i64 %indvars.iv
|
||||
%2 = load double* %arrayidx4, align 8, !tbaa !3
|
||||
%2 = load double* %arrayidx4, align 8
|
||||
%3 = tail call double @llvm.fma.f64(double %0, double %2, double %1)
|
||||
%arrayidx6 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %3, double* %arrayidx6, align 8, !tbaa !3
|
||||
store double %3, double* %arrayidx6, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -799,14 +799,14 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%arrayidx2 = getelementptr inbounds float* %w, i64 %indvars.iv
|
||||
%1 = load float* %arrayidx2, align 4, !tbaa !0
|
||||
%1 = load float* %arrayidx2, align 4
|
||||
%arrayidx4 = getelementptr inbounds float* %z, i64 %indvars.iv
|
||||
%2 = load float* %arrayidx4, align 4, !tbaa !0
|
||||
%2 = load float* %arrayidx4, align 4
|
||||
%3 = tail call float @llvm.fmuladd.f32(float %0, float %2, float %1)
|
||||
%arrayidx6 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %3, float* %arrayidx6, align 4, !tbaa !0
|
||||
store float %3, float* %arrayidx6, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -829,14 +829,14 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%arrayidx2 = getelementptr inbounds double* %w, i64 %indvars.iv
|
||||
%1 = load double* %arrayidx2, align 8, !tbaa !3
|
||||
%1 = load double* %arrayidx2, align 8
|
||||
%arrayidx4 = getelementptr inbounds double* %z, i64 %indvars.iv
|
||||
%2 = load double* %arrayidx4, align 8, !tbaa !3
|
||||
%2 = load double* %arrayidx4, align 8
|
||||
%3 = tail call double @llvm.fmuladd.f64(double %0, double %2, double %1)
|
||||
%arrayidx6 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %3, double* %arrayidx6, align 8, !tbaa !3
|
||||
store double %3, double* %arrayidx6, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -859,12 +859,12 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%arrayidx2 = getelementptr inbounds float* %z, i64 %indvars.iv
|
||||
%1 = load float* %arrayidx2, align 4, !tbaa !0
|
||||
%1 = load float* %arrayidx2, align 4
|
||||
%call = tail call float @llvm.pow.f32(float %0, float %1) nounwind readnone
|
||||
%arrayidx4 = getelementptr inbounds float* %x, i64 %indvars.iv
|
||||
store float %call, float* %arrayidx4, align 4, !tbaa !0
|
||||
store float %call, float* %arrayidx4, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -887,12 +887,12 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 8, !tbaa !3
|
||||
%0 = load double* %arrayidx, align 8
|
||||
%arrayidx2 = getelementptr inbounds double* %z, i64 %indvars.iv
|
||||
%1 = load double* %arrayidx2, align 8, !tbaa !3
|
||||
%1 = load double* %arrayidx2, align 8
|
||||
%call = tail call double @llvm.pow.f64(double %0, double %1) nounwind readnone
|
||||
%arrayidx4 = getelementptr inbounds double* %x, i64 %indvars.iv
|
||||
store double %call, double* %arrayidx4, align 8, !tbaa !3
|
||||
store double %call, double* %arrayidx4, align 8
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, %n
|
||||
@ -927,9 +927,3 @@ for.end: ; preds = %for.body
|
||||
declare float @fabsf(float) nounwind readnone
|
||||
|
||||
declare double @llvm.pow.f64(double, double) nounwind readnone
|
||||
|
||||
!0 = metadata !{metadata !"float", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!3 = metadata !{metadata !"double", metadata !1}
|
||||
!4 = metadata !{metadata !"int", metadata !1}
|
||||
|
Loading…
x
Reference in New Issue
Block a user