mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 20:29:53 +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@180796 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8960a5c63d
commit
2dc50d3067
@ -26,8 +26,8 @@ outer.loop: ; preds = %for.inc69, %entry
|
||||
%0 = phi i32 [ %inc71, %for.inc69 ], [ 0, %entry ]
|
||||
%offset = getelementptr %struct.partition_entry* %part, i32 %0, i32 2
|
||||
%len = getelementptr %struct.partition_entry* %part, i32 %0, i32 3
|
||||
%tmp5 = load i64* %offset, align 4, !tbaa !0
|
||||
%tmp15 = load i64* %len, align 4, !tbaa !0
|
||||
%tmp5 = load i64* %offset, align 4
|
||||
%tmp15 = load i64* %len, align 4
|
||||
%add = add nsw i64 %tmp15, %tmp5
|
||||
br label %inner.loop
|
||||
|
||||
@ -40,8 +40,8 @@ inner.loop: ; preds = %for.inc, %outer.loo
|
||||
if.end: ; preds = %inner.loop
|
||||
%len39 = getelementptr %struct.partition_entry* %part, i32 %1, i32 3
|
||||
%offset28 = getelementptr %struct.partition_entry* %part, i32 %1, i32 2
|
||||
%tmp29 = load i64* %offset28, align 4, !tbaa !0
|
||||
%tmp40 = load i64* %len39, align 4, !tbaa !0
|
||||
%tmp29 = load i64* %offset28, align 4
|
||||
%tmp40 = load i64* %len39, align 4
|
||||
%add41 = add nsw i64 %tmp40, %tmp29
|
||||
%cmp44 = icmp sge i64 %tmp29, %tmp5
|
||||
%cmp47 = icmp slt i64 %tmp29, %add
|
||||
@ -74,7 +74,3 @@ for.end72: ; preds = %for.inc69, %entry
|
||||
%overlap.0.lcssa = phi i32 [ 0, %entry ], [ %overlap.4, %for.inc69 ]
|
||||
ret i32 %overlap.0.lcssa
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"long long", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -11,19 +11,19 @@
|
||||
|
||||
define i32 @fn(i32* nocapture %opcodes) nounwind readonly ssp {
|
||||
entry:
|
||||
%0 = load i32* %opcodes, align 4, !tbaa !0
|
||||
%0 = load i32* %opcodes, align 4
|
||||
%arrayidx = getelementptr inbounds [3 x i8*]* @fn.codetable, i32 0, i32 %0
|
||||
br label %indirectgoto
|
||||
|
||||
INCREMENT: ; preds = %indirectgoto
|
||||
%inc = add nsw i32 %result.0, 1
|
||||
%1 = load i32* %opcodes.addr.0, align 4, !tbaa !0
|
||||
%1 = load i32* %opcodes.addr.0, align 4
|
||||
%arrayidx2 = getelementptr inbounds [3 x i8*]* @fn.codetable, i32 0, i32 %1
|
||||
br label %indirectgoto
|
||||
|
||||
DECREMENT: ; preds = %indirectgoto
|
||||
%dec = add nsw i32 %result.0, -1
|
||||
%2 = load i32* %opcodes.addr.0, align 4, !tbaa !0
|
||||
%2 = load i32* %opcodes.addr.0, align 4
|
||||
%arrayidx4 = getelementptr inbounds [3 x i8*]* @fn.codetable, i32 0, i32 %2
|
||||
br label %indirectgoto
|
||||
|
||||
@ -38,7 +38,3 @@ indirectgoto: ; preds = %DECREMENT, %INCREME
|
||||
RETURN: ; preds = %indirectgoto
|
||||
ret i32 %result.0
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -7,7 +7,7 @@
|
||||
; CHECK-NOT: vmul
|
||||
define void @t0() nounwind {
|
||||
entry:
|
||||
%tmp = load float* @in, align 4, !tbaa !0
|
||||
%tmp = load float* @in, align 4
|
||||
%vecinit.i = insertelement <2 x float> undef, float %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x float> %vecinit.i, float %tmp, i32 1
|
||||
%mul.i = fmul <2 x float> %vecinit2.i, <float 8.000000e+00, float 8.000000e+00>
|
||||
@ -23,7 +23,7 @@ declare void @foo_int32x2_t(<2 x i32>)
|
||||
; CHECK-NOT: vmul
|
||||
define void @t1() nounwind {
|
||||
entry:
|
||||
%tmp = load float* @in, align 4, !tbaa !0
|
||||
%tmp = load float* @in, align 4
|
||||
%vecinit.i = insertelement <2 x float> undef, float %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x float> %vecinit.i, float %tmp, i32 1
|
||||
%mul.i = fmul <2 x float> %vecinit2.i, <float 8.000000e+00, float 8.000000e+00>
|
||||
@ -39,7 +39,7 @@ declare void @foo_uint32x2_t(<2 x i32>)
|
||||
; CHECK: vmul
|
||||
define void @t2() nounwind {
|
||||
entry:
|
||||
%tmp = load float* @in, align 4, !tbaa !0
|
||||
%tmp = load float* @in, align 4
|
||||
%vecinit.i = insertelement <2 x float> undef, float %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x float> %vecinit.i, float %tmp, i32 1
|
||||
%mul.i = fmul <2 x float> %vecinit2.i, <float 0x401B333340000000, float 0x401B333340000000>
|
||||
@ -53,7 +53,7 @@ entry:
|
||||
; CHECK: vmul
|
||||
define void @t3() nounwind {
|
||||
entry:
|
||||
%tmp = load float* @in, align 4, !tbaa !0
|
||||
%tmp = load float* @in, align 4
|
||||
%vecinit.i = insertelement <2 x float> undef, float %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x float> %vecinit.i, float %tmp, i32 1
|
||||
%mul.i = fmul <2 x float> %vecinit2.i, <float 0x4200000000000000, float 0x4200000000000000>
|
||||
@ -67,7 +67,7 @@ entry:
|
||||
; CHECK-NOT: vmul
|
||||
define void @t4() nounwind {
|
||||
entry:
|
||||
%tmp = load float* @in, align 4, !tbaa !0
|
||||
%tmp = load float* @in, align 4
|
||||
%vecinit.i = insertelement <2 x float> undef, float %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x float> %vecinit.i, float %tmp, i32 1
|
||||
%mul.i = fmul <2 x float> %vecinit2.i, <float 0x41F0000000000000, float 0x41F0000000000000>
|
||||
@ -81,7 +81,7 @@ entry:
|
||||
; CHECK-NOT: vmul
|
||||
define void @t5() nounwind {
|
||||
entry:
|
||||
%tmp = load float* @in, align 4, !tbaa !0
|
||||
%tmp = load float* @in, align 4
|
||||
%vecinit.i = insertelement <4 x float> undef, float %tmp, i32 0
|
||||
%vecinit2.i = insertelement <4 x float> %vecinit.i, float %tmp, i32 1
|
||||
%vecinit4.i = insertelement <4 x float> %vecinit2.i, float %tmp, i32 2
|
||||
@ -93,7 +93,3 @@ entry:
|
||||
}
|
||||
|
||||
declare void @foo_int32x4_t(<4 x i32>)
|
||||
|
||||
!0 = metadata !{metadata !"float", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -11,7 +11,7 @@ declare void @foo_int32x4_t(<4 x i32>)
|
||||
; CHECK-NOT: {{vdiv|vmul}}
|
||||
define void @t1() nounwind {
|
||||
entry:
|
||||
%tmp = load i32* @iin, align 4, !tbaa !3
|
||||
%tmp = load i32* @iin, align 4
|
||||
%vecinit.i = insertelement <2 x i32> undef, i32 %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x i32> %vecinit.i, i32 %tmp, i32 1
|
||||
%vcvt.i = sitofp <2 x i32> %vecinit2.i to <2 x float>
|
||||
@ -27,7 +27,7 @@ declare void @foo_float32x2_t(<2 x float>)
|
||||
; CHECK-NOT: {{vdiv|vmul}}
|
||||
define void @t2() nounwind {
|
||||
entry:
|
||||
%tmp = load i32* @uin, align 4, !tbaa !3
|
||||
%tmp = load i32* @uin, align 4
|
||||
%vecinit.i = insertelement <2 x i32> undef, i32 %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x i32> %vecinit.i, i32 %tmp, i32 1
|
||||
%vcvt.i = uitofp <2 x i32> %vecinit2.i to <2 x float>
|
||||
@ -41,7 +41,7 @@ entry:
|
||||
; CHECK: {{vdiv|vmul}}
|
||||
define void @t3() nounwind {
|
||||
entry:
|
||||
%tmp = load i32* @iin, align 4, !tbaa !3
|
||||
%tmp = load i32* @iin, align 4
|
||||
%vecinit.i = insertelement <2 x i32> undef, i32 %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x i32> %vecinit.i, i32 %tmp, i32 1
|
||||
%vcvt.i = sitofp <2 x i32> %vecinit2.i to <2 x float>
|
||||
@ -55,7 +55,7 @@ entry:
|
||||
; CHECK: {{vdiv|vmul}}
|
||||
define void @t4() nounwind {
|
||||
entry:
|
||||
%tmp = load i32* @iin, align 4, !tbaa !3
|
||||
%tmp = load i32* @iin, align 4
|
||||
%vecinit.i = insertelement <2 x i32> undef, i32 %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x i32> %vecinit.i, i32 %tmp, i32 1
|
||||
%vcvt.i = sitofp <2 x i32> %vecinit2.i to <2 x float>
|
||||
@ -69,7 +69,7 @@ entry:
|
||||
; CHECK-NOT: {{vdiv|vmul}}
|
||||
define void @t5() nounwind {
|
||||
entry:
|
||||
%tmp = load i32* @iin, align 4, !tbaa !3
|
||||
%tmp = load i32* @iin, align 4
|
||||
%vecinit.i = insertelement <2 x i32> undef, i32 %tmp, i32 0
|
||||
%vecinit2.i = insertelement <2 x i32> %vecinit.i, i32 %tmp, i32 1
|
||||
%vcvt.i = sitofp <2 x i32> %vecinit2.i to <2 x float>
|
||||
@ -83,7 +83,7 @@ entry:
|
||||
; CHECK-NOT: {{vdiv|vmul}}
|
||||
define void @t6() nounwind {
|
||||
entry:
|
||||
%tmp = load i32* @iin, align 4, !tbaa !3
|
||||
%tmp = load i32* @iin, align 4
|
||||
%vecinit.i = insertelement <4 x i32> undef, i32 %tmp, i32 0
|
||||
%vecinit2.i = insertelement <4 x i32> %vecinit.i, i32 %tmp, i32 1
|
||||
%vecinit4.i = insertelement <4 x i32> %vecinit2.i, i32 %tmp, i32 2
|
||||
@ -95,8 +95,3 @@ entry:
|
||||
}
|
||||
|
||||
declare void @foo_float32x4_t(<4 x float>)
|
||||
|
||||
!0 = metadata !{metadata !"float", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!3 = metadata !{metadata !"int", metadata !1}
|
||||
|
@ -51,7 +51,7 @@ for.body.i: ; preds = %for.body.i, %entry
|
||||
|
||||
func_74.exit.for.cond29.thread_crit_edge: ; preds = %for.body.i
|
||||
%f13576.pre = getelementptr inbounds %struct.S0* undef, i64 0, i32 1
|
||||
store i8 0, i8* %f13576.pre, align 4, !tbaa !0
|
||||
store i8 0, i8* %f13576.pre, align 4
|
||||
br label %lbl_468
|
||||
|
||||
lbl_468: ; preds = %lbl_468, %func_74.exit.for.cond29.thread_crit_edge
|
||||
@ -63,6 +63,3 @@ lbl_468: ; preds = %lbl_468, %func_74.e
|
||||
for.end74: ; preds = %lbl_468
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"omnipotent char", metadata !1}
|
||||
!1 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -16,7 +16,7 @@ entry:
|
||||
define i32 @Func_3b(i32) nounwind readonly {
|
||||
entry:
|
||||
; CHECK-NOT: mux
|
||||
%1 = load i8* @Enum_global, align 1, !tbaa !0
|
||||
%1 = load i8* @Enum_global, align 1
|
||||
%2 = trunc i32 %0 to i8
|
||||
%cmp = icmp ne i8 %1, %2
|
||||
%selv = zext i1 %cmp to i32
|
||||
@ -35,7 +35,7 @@ entry:
|
||||
define i32 @Func_3d(i32) nounwind readonly {
|
||||
entry:
|
||||
; CHECK-NOT: mux
|
||||
%1 = load i8* @Enum_global, align 1, !tbaa !0
|
||||
%1 = load i8* @Enum_global, align 1
|
||||
%2 = trunc i32 %0 to i8
|
||||
%cmp = icmp eq i8 %1, %2
|
||||
%selv = zext i1 %cmp to i32
|
||||
@ -45,7 +45,7 @@ entry:
|
||||
define i32 @Func_3e(i32) nounwind readonly {
|
||||
entry:
|
||||
; CHECK-NOT: mux
|
||||
%1 = load i8* @Enum_global, align 1, !tbaa !0
|
||||
%1 = load i8* @Enum_global, align 1
|
||||
%2 = trunc i32 %0 to i8
|
||||
%cmp = icmp eq i8 %1, %2
|
||||
%selv = zext i1 %cmp to i32
|
||||
@ -87,6 +87,3 @@ entry:
|
||||
%selv = zext i1 %cmp to i32
|
||||
ret i32 %selv
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"omnipotent char", metadata !1}
|
||||
!1 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -15,9 +15,9 @@ entry:
|
||||
for.body: ; preds = %for.body, %entry
|
||||
%i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ]
|
||||
%arrayidx = getelementptr inbounds [25000 x i32]* @b, i32 0, i32 %i.02
|
||||
store i32 %i.02, i32* %arrayidx, align 4, !tbaa !0
|
||||
store i32 %i.02, i32* %arrayidx, align 4
|
||||
%arrayidx1 = getelementptr inbounds [25000 x i32]* @a, i32 0, i32 %i.02
|
||||
store i32 %i.02, i32* %arrayidx1, align 4, !tbaa !0
|
||||
store i32 %i.02, i32* %arrayidx1, align 4
|
||||
%inc = add nsw i32 %i.02, 1
|
||||
%exitcond = icmp eq i32 %inc, 25000
|
||||
br i1 %exitcond, label %for.end, label %for.body
|
||||
@ -25,7 +25,3 @@ for.body: ; preds = %for.body, %entry
|
||||
for.end: ; preds = %for.body
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -19,8 +19,8 @@ for.body: ; preds = %for.body, %entry
|
||||
%b.addr.01 = phi i32* [ %b, %entry ], [ %incdec.ptr, %for.body ]
|
||||
%incdec.ptr = getelementptr inbounds i32* %b.addr.01, i32 1, !dbg !21
|
||||
tail call void @llvm.dbg.value(metadata !{i32* %incdec.ptr}, i64 0, metadata !14), !dbg !21
|
||||
%0 = load i32* %b.addr.01, align 4, !dbg !21, !tbaa !23
|
||||
store i32 %0, i32* %arrayidx.phi, align 4, !dbg !21, !tbaa !23
|
||||
%0 = load i32* %b.addr.01, align 4, !dbg !21
|
||||
store i32 %0, i32* %arrayidx.phi, align 4, !dbg !21
|
||||
%inc = add nsw i32 %i.02, 1, !dbg !26
|
||||
tail call void @llvm.dbg.value(metadata !{i32 %inc}, i64 0, metadata !15), !dbg !26
|
||||
%exitcond = icmp eq i32 %inc, 10, !dbg !19
|
||||
@ -57,8 +57,5 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
|
||||
!20 = metadata !{i32 786443, metadata !16, i32 3, i32 3, metadata !6, i32 1} ; [ DW_TAG_lexical_block ] [/usr2/kparzysz/s.hex/t/hwloop-dbg.c]
|
||||
!21 = metadata !{i32 4, i32 5, metadata !22, null}
|
||||
!22 = metadata !{i32 786443, metadata !20, i32 3, i32 28, metadata !6, i32 2} ; [ DW_TAG_lexical_block ] [/usr2/kparzysz/s.hex/t/hwloop-dbg.c]
|
||||
!23 = metadata !{metadata !"int", metadata !24}
|
||||
!24 = metadata !{metadata !"omnipotent char", metadata !25}
|
||||
!25 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!26 = metadata !{i32 3, i32 23, metadata !20, null}
|
||||
!27 = metadata !{i32 6, i32 1, metadata !16, null}
|
||||
|
@ -6,11 +6,11 @@ define void @f(i16* nocapture %p) nounwind {
|
||||
entry:
|
||||
; CHECK: memh(r{{[0-9]+}}{{ *}}+{{ *}}#20){{ *}}-={{ *}}#1
|
||||
%add.ptr = getelementptr inbounds i16* %p, i32 10
|
||||
%0 = load i16* %add.ptr, align 2, !tbaa !0
|
||||
%0 = load i16* %add.ptr, align 2
|
||||
%conv2 = zext i16 %0 to i32
|
||||
%sub = add nsw i32 %conv2, 65535
|
||||
%conv1 = trunc i32 %sub to i16
|
||||
store i16 %conv1, i16* %add.ptr, align 2, !tbaa !0
|
||||
store i16 %conv1, i16* %add.ptr, align 2
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -19,14 +19,10 @@ entry:
|
||||
; CHECK: memh(r{{[0-9]+}}{{ *}}+{{ *}}#20){{ *}}-={{ *}}#1
|
||||
%add.ptr.sum = add i32 %i, 10
|
||||
%add.ptr1 = getelementptr inbounds i16* %p, i32 %add.ptr.sum
|
||||
%0 = load i16* %add.ptr1, align 2, !tbaa !0
|
||||
%0 = load i16* %add.ptr1, align 2
|
||||
%conv3 = zext i16 %0 to i32
|
||||
%sub = add nsw i32 %conv3, 65535
|
||||
%conv2 = trunc i32 %sub to i16
|
||||
store i16 %conv2, i16* %add.ptr1, align 2, !tbaa !0
|
||||
store i16 %conv2, i16* %add.ptr1, align 2
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"short", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -6,11 +6,11 @@ define void @f(i8* nocapture %p) nounwind {
|
||||
entry:
|
||||
; CHECK: memb(r{{[0-9]+}}{{ *}}+{{ *}}#10){{ *}}-={{ *}}#1
|
||||
%add.ptr = getelementptr inbounds i8* %p, i32 10
|
||||
%0 = load i8* %add.ptr, align 1, !tbaa !0
|
||||
%0 = load i8* %add.ptr, align 1
|
||||
%conv = zext i8 %0 to i32
|
||||
%sub = add nsw i32 %conv, 255
|
||||
%conv1 = trunc i32 %sub to i8
|
||||
store i8 %conv1, i8* %add.ptr, align 1, !tbaa !0
|
||||
store i8 %conv1, i8* %add.ptr, align 1
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -19,13 +19,10 @@ entry:
|
||||
; CHECK: memb(r{{[0-9]+}}{{ *}}+{{ *}}#10){{ *}}-={{ *}}#1
|
||||
%add.ptr.sum = add i32 %i, 10
|
||||
%add.ptr1 = getelementptr inbounds i8* %p, i32 %add.ptr.sum
|
||||
%0 = load i8* %add.ptr1, align 1, !tbaa !0
|
||||
%0 = load i8* %add.ptr1, align 1
|
||||
%conv = zext i8 %0 to i32
|
||||
%sub = add nsw i32 %conv, 255
|
||||
%conv2 = trunc i32 %sub to i8
|
||||
store i8 %conv2, i8* %add.ptr1, align 1, !tbaa !0
|
||||
store i8 %conv2, i8* %add.ptr1, align 1
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"omnipotent char", metadata !1}
|
||||
!1 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -46,17 +46,17 @@ for.body: ; preds = %for.body, %entry
|
||||
%1 = trunc i64 %val.021 to i32
|
||||
%2 = trunc i64 %0 to i32
|
||||
%3 = tail call i32 @llvm.hexagon.C2.mux(i32 %conv3, i32 %1, i32 %2)
|
||||
store i32 %3, i32* %lsr.iv3335, align 4, !tbaa !0
|
||||
store i32 %3, i32* %lsr.iv3335, align 4
|
||||
%conv8 = sext i8 %predicate_1.023 to i32
|
||||
%4 = lshr i64 %val.021, 32
|
||||
%5 = trunc i64 %4 to i32
|
||||
%6 = lshr i64 %0, 32
|
||||
%7 = trunc i64 %6 to i32
|
||||
%8 = tail call i32 @llvm.hexagon.C2.mux(i32 %conv8, i32 %5, i32 %7)
|
||||
store i32 %8, i32* %lsr.iv2931, align 4, !tbaa !0
|
||||
store i32 %8, i32* %lsr.iv2931, align 4
|
||||
%srcval = load i64* %lsr.iv27, align 8
|
||||
%9 = load i8* %lsr.iv40, align 1, !tbaa !1
|
||||
%10 = load i8* %lsr.iv37, align 1, !tbaa !1
|
||||
%9 = load i8* %lsr.iv40, align 1
|
||||
%10 = load i8* %lsr.iv37, align 1
|
||||
%lftr.wideiv = trunc i32 %lsr.iv42 to i8
|
||||
%exitcond = icmp eq i8 %lftr.wideiv, 32
|
||||
%scevgep26 = getelementptr %union.vect64* %lsr.iv, i32 1
|
||||
@ -74,7 +74,3 @@ for.end: ; preds = %for.body
|
||||
declare i64 @llvm.hexagon.A2.vsubhs(i64, i64) nounwind readnone
|
||||
|
||||
declare i32 @llvm.hexagon.C2.mux(i32, i32, i32) nounwind readnone
|
||||
|
||||
!0 = metadata !{metadata !"long", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -59,23 +59,23 @@ if.end: ; preds = %if.else, %if.then
|
||||
; CHECK: lw $25, %call16(printf)
|
||||
|
||||
%.pre-phi = phi i32* [ %2, %if.else ], [ %.pre, %if.then ]
|
||||
%tmp7 = load i32* %0, align 4, !tbaa !0
|
||||
%tmp7 = load i32* %0, align 4
|
||||
%arrayidx9 = getelementptr inbounds i8* %tmp1, i32 4
|
||||
%3 = bitcast i8* %arrayidx9 to i32*
|
||||
%tmp10 = load i32* %3, align 4, !tbaa !0
|
||||
%tmp10 = load i32* %3, align 4
|
||||
%arrayidx12 = getelementptr inbounds i8* %tmp1, i32 8
|
||||
%4 = bitcast i8* %arrayidx12 to i32*
|
||||
%tmp13 = load i32* %4, align 4, !tbaa !0
|
||||
%tmp16 = load i32* %.pre-phi, align 4, !tbaa !0
|
||||
%tmp13 = load i32* %4, align 4
|
||||
%tmp16 = load i32* %.pre-phi, align 4
|
||||
%arrayidx18 = getelementptr inbounds i8* %tmp1, i32 16
|
||||
%5 = bitcast i8* %arrayidx18 to i32*
|
||||
%tmp19 = load i32* %5, align 4, !tbaa !0
|
||||
%tmp19 = load i32* %5, align 4
|
||||
%arrayidx21 = getelementptr inbounds i8* %tmp1, i32 20
|
||||
%6 = bitcast i8* %arrayidx21 to i32*
|
||||
%tmp22 = load i32* %6, align 4, !tbaa !0
|
||||
%tmp22 = load i32* %6, align 4
|
||||
%arrayidx24 = getelementptr inbounds i8* %tmp1, i32 24
|
||||
%7 = bitcast i8* %arrayidx24 to i32*
|
||||
%tmp25 = load i32* %7, align 4, !tbaa !0
|
||||
%tmp25 = load i32* %7, align 4
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([22 x i8]* @.str, i32 0, i32 0), i32 %tmp7, i32 %tmp10, i32 %tmp13, i32 %tmp16, i32 %tmp19, i32 %tmp22, i32 %tmp25) nounwind
|
||||
ret i32 0
|
||||
}
|
||||
@ -83,7 +83,3 @@ if.end: ; preds = %if.else, %if.then
|
||||
declare void @foo3(i32*)
|
||||
|
||||
declare i32 @printf(i8* nocapture, ...) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -32,7 +32,7 @@ entry:
|
||||
define i32 @sdivrem1(i32 %a0, i32 %a1, i32* nocapture %r) nounwind {
|
||||
entry:
|
||||
%rem = srem i32 %a0, %a1
|
||||
store i32 %rem, i32* %r, align 4, !tbaa !0
|
||||
store i32 %rem, i32* %r, align 4
|
||||
%div = sdiv i32 %a0, %a1
|
||||
ret i32 %div
|
||||
}
|
||||
@ -41,11 +41,7 @@ entry:
|
||||
define i32 @udivrem1(i32 %a0, i32 %a1, i32* nocapture %r) nounwind {
|
||||
entry:
|
||||
%rem = urem i32 %a0, %a1
|
||||
store i32 %rem, i32* %r, align 4, !tbaa !0
|
||||
store i32 %rem, i32* %r, align 4
|
||||
%div = udiv i32 %a0, %a1
|
||||
ret i32 %div
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -18,7 +18,7 @@ entry:
|
||||
|
||||
%exception = tail call i8* @__cxa_allocate_exception(i32 8) nounwind
|
||||
%0 = bitcast i8* %exception to double*
|
||||
store double 3.200000e+00, double* %0, align 8, !tbaa !0
|
||||
store double 3.200000e+00, double* %0, align 8
|
||||
invoke void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTId to i8*), i8* null) noreturn
|
||||
to label %unreachable unwind label %lpad
|
||||
|
||||
@ -39,7 +39,7 @@ catch: ; preds = %lpad
|
||||
%4 = bitcast i8* %3 to double*
|
||||
%exn.scalar = load double* %4, align 8
|
||||
%add = fadd double %exn.scalar, %i2
|
||||
store double %add, double* @g1, align 8, !tbaa !0
|
||||
store double %add, double* @g1, align 8
|
||||
tail call void @__cxa_end_catch() nounwind
|
||||
ret void
|
||||
|
||||
@ -61,7 +61,3 @@ declare void @__cxa_throw(i8*, i8*, i8*)
|
||||
declare i8* @__cxa_begin_catch(i8*)
|
||||
|
||||
declare void @__cxa_end_catch()
|
||||
|
||||
!0 = metadata !{metadata !"double", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -130,8 +130,8 @@ define i32 @sel12(i32 %f0, i32 %f1) nounwind readonly {
|
||||
entry:
|
||||
; CHECK: c.eq.d
|
||||
; CHECK: movt
|
||||
%tmp = load double* @d2, align 8, !tbaa !0
|
||||
%tmp1 = load double* @d3, align 8, !tbaa !0
|
||||
%tmp = load double* @d2, align 8
|
||||
%tmp1 = load double* @d3, align 8
|
||||
%cmp = fcmp oeq double %tmp, %tmp1
|
||||
%cond = select i1 %cmp, i32 %f0, i32 %f1
|
||||
ret i32 %cond
|
||||
@ -141,8 +141,8 @@ define i32 @sel13(i32 %f0, i32 %f1) nounwind readonly {
|
||||
entry:
|
||||
; CHECK: c.olt.d
|
||||
; CHECK: movt
|
||||
%tmp = load double* @d2, align 8, !tbaa !0
|
||||
%tmp1 = load double* @d3, align 8, !tbaa !0
|
||||
%tmp = load double* @d2, align 8
|
||||
%tmp1 = load double* @d3, align 8
|
||||
%cmp = fcmp olt double %tmp, %tmp1
|
||||
%cond = select i1 %cmp, i32 %f0, i32 %f1
|
||||
ret i32 %cond
|
||||
@ -152,13 +152,9 @@ define i32 @sel14(i32 %f0, i32 %f1) nounwind readonly {
|
||||
entry:
|
||||
; CHECK: c.ule.d
|
||||
; CHECK: movf
|
||||
%tmp = load double* @d2, align 8, !tbaa !0
|
||||
%tmp1 = load double* @d3, align 8, !tbaa !0
|
||||
%tmp = load double* @d2, align 8
|
||||
%tmp1 = load double* @d3, align 8
|
||||
%cmp = fcmp ogt double %tmp, %tmp1
|
||||
%cond = select i1 %cmp, i32 %f0, i32 %f1
|
||||
ret i32 %cond
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"double", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -6,7 +6,7 @@ define i32 @foo0(i32 %s) nounwind readonly {
|
||||
entry:
|
||||
; CHECK: movn ${{[0-9]+}}, $zero
|
||||
%tobool = icmp ne i32 %s, 0
|
||||
%0 = load i32* @g1, align 4, !tbaa !0
|
||||
%0 = load i32* @g1, align 4
|
||||
%cond = select i1 %tobool, i32 0, i32 %0
|
||||
ret i32 %cond
|
||||
}
|
||||
@ -15,11 +15,7 @@ define i32 @foo1(i32 %s) nounwind readonly {
|
||||
entry:
|
||||
; CHECK: movz ${{[0-9]+}}, $zero
|
||||
%tobool = icmp ne i32 %s, 0
|
||||
%0 = load i32* @g1, align 4, !tbaa !0
|
||||
%0 = load i32* @g1, align 4
|
||||
%cond = select i1 %tobool, i32 %0, i32 0
|
||||
ret i32 %cond
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -47,11 +47,11 @@ for.body4.us: ; preds = %for.body4.lr.ph.us,
|
||||
%sext = shl i64 %sub5.us, 32
|
||||
%idxprom.us = ashr exact i64 %sext, 32
|
||||
%arrayidx.us = getelementptr inbounds [32000 x float]* @b, i64 0, i64 %idxprom.us
|
||||
%2 = load float* %arrayidx.us, align 4, !tbaa !5
|
||||
%2 = load float* %arrayidx.us, align 4
|
||||
%arrayidx7.us = getelementptr inbounds [32000 x float]* @a, i64 0, i64 %indvars.iv
|
||||
%3 = load float* %arrayidx7.us, align 4, !tbaa !5
|
||||
%3 = load float* %arrayidx7.us, align 4
|
||||
%add8.us = fadd float %3, %2
|
||||
store float %add8.us, float* %arrayidx7.us, align 4, !tbaa !5
|
||||
store float %add8.us, float* %arrayidx7.us, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, %1
|
||||
%4 = trunc i64 %indvars.iv.next to i32
|
||||
%cmp3.us = icmp slt i32 %4, 32000
|
||||
@ -82,11 +82,11 @@ for.body4.us.1: ; preds = %for.body4.us.1, %fo
|
||||
%sext23 = shl i64 %sub5.us.1, 32
|
||||
%idxprom.us.1 = ashr exact i64 %sext23, 32
|
||||
%arrayidx.us.1 = getelementptr inbounds [32000 x float]* @b, i64 0, i64 %idxprom.us.1
|
||||
%5 = load float* %arrayidx.us.1, align 4, !tbaa !5
|
||||
%5 = load float* %arrayidx.us.1, align 4
|
||||
%arrayidx7.us.1 = getelementptr inbounds [32000 x float]* @a, i64 0, i64 %indvars.iv.1
|
||||
%6 = load float* %arrayidx7.us.1, align 4, !tbaa !5
|
||||
%6 = load float* %arrayidx7.us.1, align 4
|
||||
%add8.us.1 = fadd float %6, %5
|
||||
store float %add8.us.1, float* %arrayidx7.us.1, align 4, !tbaa !5
|
||||
store float %add8.us.1, float* %arrayidx7.us.1, align 4
|
||||
%indvars.iv.next.1 = add i64 %indvars.iv.1, %1
|
||||
%7 = trunc i64 %indvars.iv.next.1 to i32
|
||||
%cmp3.us.1 = icmp slt i32 %7, 32000
|
||||
@ -104,11 +104,11 @@ for.body4.us.2: ; preds = %for.body4.us.2, %fo
|
||||
%sext24 = shl i64 %sub5.us.2, 32
|
||||
%idxprom.us.2 = ashr exact i64 %sext24, 32
|
||||
%arrayidx.us.2 = getelementptr inbounds [32000 x float]* @b, i64 0, i64 %idxprom.us.2
|
||||
%8 = load float* %arrayidx.us.2, align 4, !tbaa !5
|
||||
%8 = load float* %arrayidx.us.2, align 4
|
||||
%arrayidx7.us.2 = getelementptr inbounds [32000 x float]* @a, i64 0, i64 %indvars.iv.2
|
||||
%9 = load float* %arrayidx7.us.2, align 4, !tbaa !5
|
||||
%9 = load float* %arrayidx7.us.2, align 4
|
||||
%add8.us.2 = fadd float %9, %8
|
||||
store float %add8.us.2, float* %arrayidx7.us.2, align 4, !tbaa !5
|
||||
store float %add8.us.2, float* %arrayidx7.us.2, align 4
|
||||
%indvars.iv.next.2 = add i64 %indvars.iv.2, %1
|
||||
%10 = trunc i64 %indvars.iv.next.2 to i32
|
||||
%cmp3.us.2 = icmp slt i32 %10, 32000
|
||||
@ -126,11 +126,11 @@ for.body4.us.3: ; preds = %for.body4.us.3, %fo
|
||||
%sext25 = shl i64 %sub5.us.3, 32
|
||||
%idxprom.us.3 = ashr exact i64 %sext25, 32
|
||||
%arrayidx.us.3 = getelementptr inbounds [32000 x float]* @b, i64 0, i64 %idxprom.us.3
|
||||
%11 = load float* %arrayidx.us.3, align 4, !tbaa !5
|
||||
%11 = load float* %arrayidx.us.3, align 4
|
||||
%arrayidx7.us.3 = getelementptr inbounds [32000 x float]* @a, i64 0, i64 %indvars.iv.3
|
||||
%12 = load float* %arrayidx7.us.3, align 4, !tbaa !5
|
||||
%12 = load float* %arrayidx7.us.3, align 4
|
||||
%add8.us.3 = fadd float %12, %11
|
||||
store float %add8.us.3, float* %arrayidx7.us.3, align 4, !tbaa !5
|
||||
store float %add8.us.3, float* %arrayidx7.us.3, align 4
|
||||
%indvars.iv.next.3 = add i64 %indvars.iv.3, %1
|
||||
%13 = trunc i64 %indvars.iv.next.3 to i32
|
||||
%cmp3.us.3 = icmp slt i32 %13, 32000
|
||||
@ -148,11 +148,11 @@ for.body4.us.4: ; preds = %for.body4.us.4, %fo
|
||||
%sext26 = shl i64 %sub5.us.4, 32
|
||||
%idxprom.us.4 = ashr exact i64 %sext26, 32
|
||||
%arrayidx.us.4 = getelementptr inbounds [32000 x float]* @b, i64 0, i64 %idxprom.us.4
|
||||
%14 = load float* %arrayidx.us.4, align 4, !tbaa !5
|
||||
%14 = load float* %arrayidx.us.4, align 4
|
||||
%arrayidx7.us.4 = getelementptr inbounds [32000 x float]* @a, i64 0, i64 %indvars.iv.4
|
||||
%15 = load float* %arrayidx7.us.4, align 4, !tbaa !5
|
||||
%15 = load float* %arrayidx7.us.4, align 4
|
||||
%add8.us.4 = fadd float %15, %14
|
||||
store float %add8.us.4, float* %arrayidx7.us.4, align 4, !tbaa !5
|
||||
store float %add8.us.4, float* %arrayidx7.us.4, align 4
|
||||
%indvars.iv.next.4 = add i64 %indvars.iv.4, %1
|
||||
%16 = trunc i64 %indvars.iv.next.4 to i32
|
||||
%cmp3.us.4 = icmp slt i32 %16, 32000
|
||||
@ -183,9 +183,4 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32,
|
||||
|
||||
declare i32 @puts(i8* nocapture) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!3 = metadata !{metadata !"branch_weights", i32 64, i32 4}
|
||||
!4 = metadata !{metadata !"int", metadata !1}
|
||||
!5 = metadata !{metadata !"float", metadata !1}
|
||||
|
@ -35,7 +35,7 @@ entry:
|
||||
|
||||
for.body: ; preds = %for.end17, %entry
|
||||
%nl.041 = phi i32 [ 0, %entry ], [ %inc22, %for.end17 ]
|
||||
%0 = load float* getelementptr inbounds ([256 x [256 x float]]* @aa, i64 0, i64 0, i64 0), align 16, !tbaa !5
|
||||
%0 = load float* getelementptr inbounds ([256 x [256 x float]]* @aa, i64 0, i64 0, i64 0), align 16
|
||||
br label %for.cond5.preheader
|
||||
|
||||
for.cond5.preheader: ; preds = %for.inc15, %for.body
|
||||
@ -51,7 +51,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%xindex.234 = phi i32 [ %xindex.138, %for.cond5.preheader ], [ %xindex.3.15, %for.body7 ]
|
||||
%yindex.233 = phi i32 [ %yindex.137, %for.cond5.preheader ], [ %yindex.3.15, %for.body7 ]
|
||||
%arrayidx9 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv
|
||||
%1 = load float* %arrayidx9, align 16, !tbaa !5
|
||||
%1 = load float* %arrayidx9, align 16
|
||||
%cmp10 = fcmp ogt float %1, %max.235
|
||||
%2 = trunc i64 %indvars.iv to i32
|
||||
%yindex.3 = select i1 %cmp10, i32 %2, i32 %yindex.233
|
||||
@ -60,7 +60,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3 = select i1 %cmp10, float %1, float %max.235
|
||||
%indvars.iv.next45 = or i64 %indvars.iv, 1
|
||||
%arrayidx9.1 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next45
|
||||
%4 = load float* %arrayidx9.1, align 4, !tbaa !5
|
||||
%4 = load float* %arrayidx9.1, align 4
|
||||
%cmp10.1 = fcmp ogt float %4, %max.3
|
||||
%5 = trunc i64 %indvars.iv.next45 to i32
|
||||
%yindex.3.1 = select i1 %cmp10.1, i32 %5, i32 %yindex.3
|
||||
@ -68,7 +68,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.1 = select i1 %cmp10.1, float %4, float %max.3
|
||||
%indvars.iv.next.146 = or i64 %indvars.iv, 2
|
||||
%arrayidx9.2 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.146
|
||||
%6 = load float* %arrayidx9.2, align 8, !tbaa !5
|
||||
%6 = load float* %arrayidx9.2, align 8
|
||||
%cmp10.2 = fcmp ogt float %6, %max.3.1
|
||||
%7 = trunc i64 %indvars.iv.next.146 to i32
|
||||
%yindex.3.2 = select i1 %cmp10.2, i32 %7, i32 %yindex.3.1
|
||||
@ -76,7 +76,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.2 = select i1 %cmp10.2, float %6, float %max.3.1
|
||||
%indvars.iv.next.247 = or i64 %indvars.iv, 3
|
||||
%arrayidx9.3 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.247
|
||||
%8 = load float* %arrayidx9.3, align 4, !tbaa !5
|
||||
%8 = load float* %arrayidx9.3, align 4
|
||||
%cmp10.3 = fcmp ogt float %8, %max.3.2
|
||||
%9 = trunc i64 %indvars.iv.next.247 to i32
|
||||
%yindex.3.3 = select i1 %cmp10.3, i32 %9, i32 %yindex.3.2
|
||||
@ -84,7 +84,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.3 = select i1 %cmp10.3, float %8, float %max.3.2
|
||||
%indvars.iv.next.348 = or i64 %indvars.iv, 4
|
||||
%arrayidx9.4 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.348
|
||||
%10 = load float* %arrayidx9.4, align 16, !tbaa !5
|
||||
%10 = load float* %arrayidx9.4, align 16
|
||||
%cmp10.4 = fcmp ogt float %10, %max.3.3
|
||||
%11 = trunc i64 %indvars.iv.next.348 to i32
|
||||
%yindex.3.4 = select i1 %cmp10.4, i32 %11, i32 %yindex.3.3
|
||||
@ -92,7 +92,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.4 = select i1 %cmp10.4, float %10, float %max.3.3
|
||||
%indvars.iv.next.449 = or i64 %indvars.iv, 5
|
||||
%arrayidx9.5 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.449
|
||||
%12 = load float* %arrayidx9.5, align 4, !tbaa !5
|
||||
%12 = load float* %arrayidx9.5, align 4
|
||||
%cmp10.5 = fcmp ogt float %12, %max.3.4
|
||||
%13 = trunc i64 %indvars.iv.next.449 to i32
|
||||
%yindex.3.5 = select i1 %cmp10.5, i32 %13, i32 %yindex.3.4
|
||||
@ -100,7 +100,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.5 = select i1 %cmp10.5, float %12, float %max.3.4
|
||||
%indvars.iv.next.550 = or i64 %indvars.iv, 6
|
||||
%arrayidx9.6 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.550
|
||||
%14 = load float* %arrayidx9.6, align 8, !tbaa !5
|
||||
%14 = load float* %arrayidx9.6, align 8
|
||||
%cmp10.6 = fcmp ogt float %14, %max.3.5
|
||||
%15 = trunc i64 %indvars.iv.next.550 to i32
|
||||
%yindex.3.6 = select i1 %cmp10.6, i32 %15, i32 %yindex.3.5
|
||||
@ -108,7 +108,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.6 = select i1 %cmp10.6, float %14, float %max.3.5
|
||||
%indvars.iv.next.651 = or i64 %indvars.iv, 7
|
||||
%arrayidx9.7 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.651
|
||||
%16 = load float* %arrayidx9.7, align 4, !tbaa !5
|
||||
%16 = load float* %arrayidx9.7, align 4
|
||||
%cmp10.7 = fcmp ogt float %16, %max.3.6
|
||||
%17 = trunc i64 %indvars.iv.next.651 to i32
|
||||
%yindex.3.7 = select i1 %cmp10.7, i32 %17, i32 %yindex.3.6
|
||||
@ -116,7 +116,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.7 = select i1 %cmp10.7, float %16, float %max.3.6
|
||||
%indvars.iv.next.752 = or i64 %indvars.iv, 8
|
||||
%arrayidx9.8 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.752
|
||||
%18 = load float* %arrayidx9.8, align 16, !tbaa !5
|
||||
%18 = load float* %arrayidx9.8, align 16
|
||||
%cmp10.8 = fcmp ogt float %18, %max.3.7
|
||||
%19 = trunc i64 %indvars.iv.next.752 to i32
|
||||
%yindex.3.8 = select i1 %cmp10.8, i32 %19, i32 %yindex.3.7
|
||||
@ -124,7 +124,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.8 = select i1 %cmp10.8, float %18, float %max.3.7
|
||||
%indvars.iv.next.853 = or i64 %indvars.iv, 9
|
||||
%arrayidx9.9 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.853
|
||||
%20 = load float* %arrayidx9.9, align 4, !tbaa !5
|
||||
%20 = load float* %arrayidx9.9, align 4
|
||||
%cmp10.9 = fcmp ogt float %20, %max.3.8
|
||||
%21 = trunc i64 %indvars.iv.next.853 to i32
|
||||
%yindex.3.9 = select i1 %cmp10.9, i32 %21, i32 %yindex.3.8
|
||||
@ -132,7 +132,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.9 = select i1 %cmp10.9, float %20, float %max.3.8
|
||||
%indvars.iv.next.954 = or i64 %indvars.iv, 10
|
||||
%arrayidx9.10 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.954
|
||||
%22 = load float* %arrayidx9.10, align 8, !tbaa !5
|
||||
%22 = load float* %arrayidx9.10, align 8
|
||||
%cmp10.10 = fcmp ogt float %22, %max.3.9
|
||||
%23 = trunc i64 %indvars.iv.next.954 to i32
|
||||
%yindex.3.10 = select i1 %cmp10.10, i32 %23, i32 %yindex.3.9
|
||||
@ -140,7 +140,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.10 = select i1 %cmp10.10, float %22, float %max.3.9
|
||||
%indvars.iv.next.1055 = or i64 %indvars.iv, 11
|
||||
%arrayidx9.11 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.1055
|
||||
%24 = load float* %arrayidx9.11, align 4, !tbaa !5
|
||||
%24 = load float* %arrayidx9.11, align 4
|
||||
%cmp10.11 = fcmp ogt float %24, %max.3.10
|
||||
%25 = trunc i64 %indvars.iv.next.1055 to i32
|
||||
%yindex.3.11 = select i1 %cmp10.11, i32 %25, i32 %yindex.3.10
|
||||
@ -148,7 +148,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.11 = select i1 %cmp10.11, float %24, float %max.3.10
|
||||
%indvars.iv.next.1156 = or i64 %indvars.iv, 12
|
||||
%arrayidx9.12 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.1156
|
||||
%26 = load float* %arrayidx9.12, align 16, !tbaa !5
|
||||
%26 = load float* %arrayidx9.12, align 16
|
||||
%cmp10.12 = fcmp ogt float %26, %max.3.11
|
||||
%27 = trunc i64 %indvars.iv.next.1156 to i32
|
||||
%yindex.3.12 = select i1 %cmp10.12, i32 %27, i32 %yindex.3.11
|
||||
@ -156,7 +156,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.12 = select i1 %cmp10.12, float %26, float %max.3.11
|
||||
%indvars.iv.next.1257 = or i64 %indvars.iv, 13
|
||||
%arrayidx9.13 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.1257
|
||||
%28 = load float* %arrayidx9.13, align 4, !tbaa !5
|
||||
%28 = load float* %arrayidx9.13, align 4
|
||||
%cmp10.13 = fcmp ogt float %28, %max.3.12
|
||||
%29 = trunc i64 %indvars.iv.next.1257 to i32
|
||||
%yindex.3.13 = select i1 %cmp10.13, i32 %29, i32 %yindex.3.12
|
||||
@ -164,7 +164,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.13 = select i1 %cmp10.13, float %28, float %max.3.12
|
||||
%indvars.iv.next.1358 = or i64 %indvars.iv, 14
|
||||
%arrayidx9.14 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.1358
|
||||
%30 = load float* %arrayidx9.14, align 8, !tbaa !5
|
||||
%30 = load float* %arrayidx9.14, align 8
|
||||
%cmp10.14 = fcmp ogt float %30, %max.3.13
|
||||
%31 = trunc i64 %indvars.iv.next.1358 to i32
|
||||
%yindex.3.14 = select i1 %cmp10.14, i32 %31, i32 %yindex.3.13
|
||||
@ -172,7 +172,7 @@ for.body7: ; preds = %for.body7, %for.con
|
||||
%max.3.14 = select i1 %cmp10.14, float %30, float %max.3.13
|
||||
%indvars.iv.next.1459 = or i64 %indvars.iv, 15
|
||||
%arrayidx9.15 = getelementptr inbounds [256 x [256 x float]]* @aa, i64 0, i64 %indvars.iv42, i64 %indvars.iv.next.1459
|
||||
%32 = load float* %arrayidx9.15, align 4, !tbaa !5
|
||||
%32 = load float* %arrayidx9.15, align 4
|
||||
%cmp10.15 = fcmp ogt float %32, %max.3.14
|
||||
%33 = trunc i64 %indvars.iv.next.1459 to i32
|
||||
%yindex.3.15 = select i1 %cmp10.15, i32 %33, i32 %yindex.3.14
|
||||
@ -208,7 +208,7 @@ for.end23: ; preds = %for.end17
|
||||
%add29 = fadd float %add, 1.000000e+00
|
||||
%add31 = fadd float %add29, %conv18
|
||||
%add32 = fadd float %add31, 1.000000e+00
|
||||
store float %add32, float* @temp, align 4, !tbaa !5
|
||||
store float %add32, float* @temp, align 4
|
||||
tail call void @check(i32 -1)
|
||||
ret i32 0
|
||||
}
|
||||
@ -217,9 +217,4 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32,
|
||||
|
||||
declare i32 @puts(i8* nocapture) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!3 = metadata !{metadata !"branch_weights", i32 64, i32 4}
|
||||
!4 = metadata !{metadata !"int", metadata !1}
|
||||
!5 = metadata !{metadata !"float", metadata !1}
|
||||
|
@ -36,100 +36,100 @@ for.cond1.preheader: ; preds = %for.end, %entry
|
||||
for.body3: ; preds = %for.body3, %for.cond1.preheader
|
||||
%indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next.15, %for.body3 ]
|
||||
%arrayidx = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv
|
||||
%0 = load double* %arrayidx, align 32, !tbaa !0
|
||||
%0 = load double* %arrayidx, align 32
|
||||
%add = fadd double %0, 1.000000e+00
|
||||
%arrayidx5 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv
|
||||
store double %add, double* %arrayidx5, align 32, !tbaa !0
|
||||
store double %add, double* %arrayidx5, align 32
|
||||
%indvars.iv.next11 = or i64 %indvars.iv, 1
|
||||
%arrayidx.1 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next11
|
||||
%1 = load double* %arrayidx.1, align 8, !tbaa !0
|
||||
%1 = load double* %arrayidx.1, align 8
|
||||
%add.1 = fadd double %1, 1.000000e+00
|
||||
%arrayidx5.1 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next11
|
||||
store double %add.1, double* %arrayidx5.1, align 8, !tbaa !0
|
||||
store double %add.1, double* %arrayidx5.1, align 8
|
||||
%indvars.iv.next.112 = or i64 %indvars.iv, 2
|
||||
%arrayidx.2 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.112
|
||||
%2 = load double* %arrayidx.2, align 16, !tbaa !0
|
||||
%2 = load double* %arrayidx.2, align 16
|
||||
%add.2 = fadd double %2, 1.000000e+00
|
||||
%arrayidx5.2 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.112
|
||||
store double %add.2, double* %arrayidx5.2, align 16, !tbaa !0
|
||||
store double %add.2, double* %arrayidx5.2, align 16
|
||||
%indvars.iv.next.213 = or i64 %indvars.iv, 3
|
||||
%arrayidx.3 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.213
|
||||
%3 = load double* %arrayidx.3, align 8, !tbaa !0
|
||||
%3 = load double* %arrayidx.3, align 8
|
||||
%add.3 = fadd double %3, 1.000000e+00
|
||||
%arrayidx5.3 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.213
|
||||
store double %add.3, double* %arrayidx5.3, align 8, !tbaa !0
|
||||
store double %add.3, double* %arrayidx5.3, align 8
|
||||
%indvars.iv.next.314 = or i64 %indvars.iv, 4
|
||||
%arrayidx.4 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.314
|
||||
%4 = load double* %arrayidx.4, align 32, !tbaa !0
|
||||
%4 = load double* %arrayidx.4, align 32
|
||||
%add.4 = fadd double %4, 1.000000e+00
|
||||
%arrayidx5.4 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.314
|
||||
store double %add.4, double* %arrayidx5.4, align 32, !tbaa !0
|
||||
store double %add.4, double* %arrayidx5.4, align 32
|
||||
%indvars.iv.next.415 = or i64 %indvars.iv, 5
|
||||
%arrayidx.5 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.415
|
||||
%5 = load double* %arrayidx.5, align 8, !tbaa !0
|
||||
%5 = load double* %arrayidx.5, align 8
|
||||
%add.5 = fadd double %5, 1.000000e+00
|
||||
%arrayidx5.5 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.415
|
||||
store double %add.5, double* %arrayidx5.5, align 8, !tbaa !0
|
||||
store double %add.5, double* %arrayidx5.5, align 8
|
||||
%indvars.iv.next.516 = or i64 %indvars.iv, 6
|
||||
%arrayidx.6 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.516
|
||||
%6 = load double* %arrayidx.6, align 16, !tbaa !0
|
||||
%6 = load double* %arrayidx.6, align 16
|
||||
%add.6 = fadd double %6, 1.000000e+00
|
||||
%arrayidx5.6 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.516
|
||||
store double %add.6, double* %arrayidx5.6, align 16, !tbaa !0
|
||||
store double %add.6, double* %arrayidx5.6, align 16
|
||||
%indvars.iv.next.617 = or i64 %indvars.iv, 7
|
||||
%arrayidx.7 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.617
|
||||
%7 = load double* %arrayidx.7, align 8, !tbaa !0
|
||||
%7 = load double* %arrayidx.7, align 8
|
||||
%add.7 = fadd double %7, 1.000000e+00
|
||||
%arrayidx5.7 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.617
|
||||
store double %add.7, double* %arrayidx5.7, align 8, !tbaa !0
|
||||
store double %add.7, double* %arrayidx5.7, align 8
|
||||
%indvars.iv.next.718 = or i64 %indvars.iv, 8
|
||||
%arrayidx.8 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.718
|
||||
%8 = load double* %arrayidx.8, align 32, !tbaa !0
|
||||
%8 = load double* %arrayidx.8, align 32
|
||||
%add.8 = fadd double %8, 1.000000e+00
|
||||
%arrayidx5.8 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.718
|
||||
store double %add.8, double* %arrayidx5.8, align 32, !tbaa !0
|
||||
store double %add.8, double* %arrayidx5.8, align 32
|
||||
%indvars.iv.next.819 = or i64 %indvars.iv, 9
|
||||
%arrayidx.9 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.819
|
||||
%9 = load double* %arrayidx.9, align 8, !tbaa !0
|
||||
%9 = load double* %arrayidx.9, align 8
|
||||
%add.9 = fadd double %9, 1.000000e+00
|
||||
%arrayidx5.9 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.819
|
||||
store double %add.9, double* %arrayidx5.9, align 8, !tbaa !0
|
||||
store double %add.9, double* %arrayidx5.9, align 8
|
||||
%indvars.iv.next.920 = or i64 %indvars.iv, 10
|
||||
%arrayidx.10 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.920
|
||||
%10 = load double* %arrayidx.10, align 16, !tbaa !0
|
||||
%10 = load double* %arrayidx.10, align 16
|
||||
%add.10 = fadd double %10, 1.000000e+00
|
||||
%arrayidx5.10 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.920
|
||||
store double %add.10, double* %arrayidx5.10, align 16, !tbaa !0
|
||||
store double %add.10, double* %arrayidx5.10, align 16
|
||||
%indvars.iv.next.1021 = or i64 %indvars.iv, 11
|
||||
%arrayidx.11 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.1021
|
||||
%11 = load double* %arrayidx.11, align 8, !tbaa !0
|
||||
%11 = load double* %arrayidx.11, align 8
|
||||
%add.11 = fadd double %11, 1.000000e+00
|
||||
%arrayidx5.11 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.1021
|
||||
store double %add.11, double* %arrayidx5.11, align 8, !tbaa !0
|
||||
store double %add.11, double* %arrayidx5.11, align 8
|
||||
%indvars.iv.next.1122 = or i64 %indvars.iv, 12
|
||||
%arrayidx.12 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.1122
|
||||
%12 = load double* %arrayidx.12, align 32, !tbaa !0
|
||||
%12 = load double* %arrayidx.12, align 32
|
||||
%add.12 = fadd double %12, 1.000000e+00
|
||||
%arrayidx5.12 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.1122
|
||||
store double %add.12, double* %arrayidx5.12, align 32, !tbaa !0
|
||||
store double %add.12, double* %arrayidx5.12, align 32
|
||||
%indvars.iv.next.1223 = or i64 %indvars.iv, 13
|
||||
%arrayidx.13 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.1223
|
||||
%13 = load double* %arrayidx.13, align 8, !tbaa !0
|
||||
%13 = load double* %arrayidx.13, align 8
|
||||
%add.13 = fadd double %13, 1.000000e+00
|
||||
%arrayidx5.13 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.1223
|
||||
store double %add.13, double* %arrayidx5.13, align 8, !tbaa !0
|
||||
store double %add.13, double* %arrayidx5.13, align 8
|
||||
%indvars.iv.next.1324 = or i64 %indvars.iv, 14
|
||||
%arrayidx.14 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.1324
|
||||
%14 = load double* %arrayidx.14, align 16, !tbaa !0
|
||||
%14 = load double* %arrayidx.14, align 16
|
||||
%add.14 = fadd double %14, 1.000000e+00
|
||||
%arrayidx5.14 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.1324
|
||||
store double %add.14, double* %arrayidx5.14, align 16, !tbaa !0
|
||||
store double %add.14, double* %arrayidx5.14, align 16
|
||||
%indvars.iv.next.1425 = or i64 %indvars.iv, 15
|
||||
%arrayidx.15 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.1425
|
||||
%15 = load double* %arrayidx.15, align 8, !tbaa !0
|
||||
%15 = load double* %arrayidx.15, align 8
|
||||
%add.15 = fadd double %15, 1.000000e+00
|
||||
%arrayidx5.15 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.1425
|
||||
store double %add.15, double* %arrayidx5.15, align 8, !tbaa !0
|
||||
store double %add.15, double* %arrayidx5.15, align 8
|
||||
%indvars.iv.next.15 = add i64 %indvars.iv, 16
|
||||
%lftr.wideiv.15 = trunc i64 %indvars.iv.next.15 to i32
|
||||
%exitcond.15 = icmp eq i32 %lftr.wideiv.15, 16000
|
||||
@ -150,7 +150,3 @@ for.end8: ; preds = %for.end
|
||||
}
|
||||
|
||||
declare i32 @dummy(double*, double*, double*, double*, double*, [256 x double]*, [256 x double]*, [256 x double]*, double)
|
||||
|
||||
!0 = metadata !{metadata !"double", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -24,7 +24,7 @@ for.body3.us: ; preds = %for.body3.us, %for.
|
||||
%indvars.iv = phi i64 [ 0, %for.body3.lr.ph.us ], [ %indvars.iv.next, %for.body3.us ]
|
||||
%Result.111.us = phi i32 [ %Result.014.us, %for.body3.lr.ph.us ], [ %add.us, %for.body3.us ]
|
||||
%arrayidx5.us = getelementptr inbounds [100 x i32]* %Array, i64 %indvars.iv16, i64 %indvars.iv
|
||||
%0 = load i32* %arrayidx5.us, align 4, !tbaa !0
|
||||
%0 = load i32* %arrayidx5.us, align 4
|
||||
%add.us = add nsw i32 %0, %Result.111.us
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
@ -60,7 +60,7 @@ for.body: ; preds = %for.body, %entry
|
||||
%0 = trunc i64 %indvars.iv33 to i32
|
||||
%sub = sub i32 0, %0
|
||||
%arrayidx2 = getelementptr inbounds [100 x [100 x i32]]* %Array, i64 0, i64 %indvars.iv33, i64 %indvars.iv33
|
||||
store i32 %sub, i32* %arrayidx2, align 4, !tbaa !0
|
||||
store i32 %sub, i32* %arrayidx2, align 4
|
||||
%indvars.iv.next34 = add i64 %indvars.iv33, 1
|
||||
%lftr.wideiv35 = trunc i64 %indvars.iv.next34 to i32
|
||||
%exitcond36 = icmp eq i32 %lftr.wideiv35, 100
|
||||
@ -81,7 +81,7 @@ if.then: ; preds = %for.body8
|
||||
%3 = add i64 %indvars.iv, %indvars.iv29
|
||||
%arrayidx13 = getelementptr inbounds [100 x [100 x i32]]* %Array, i64 0, i64 %indvars.iv29, i64 %indvars.iv
|
||||
%4 = trunc i64 %3 to i32
|
||||
store i32 %4, i32* %arrayidx13, align 4, !tbaa !0
|
||||
store i32 %4, i32* %arrayidx13, align 4
|
||||
br label %for.inc14
|
||||
|
||||
for.inc14: ; preds = %for.body8, %if.then
|
||||
@ -106,7 +106,7 @@ for.body3.us.i: ; preds = %for.body3.lr.ph.us.
|
||||
%indvars.iv.i = phi i64 [ 0, %for.body3.lr.ph.us.i ], [ %indvars.iv.next.i, %for.body3.us.i ]
|
||||
%Result.111.us.i = phi i32 [ %Result.014.us.i, %for.body3.lr.ph.us.i ], [ %add.us.i, %for.body3.us.i ]
|
||||
%arrayidx5.us.i = getelementptr inbounds [100 x [100 x i32]]* %Array, i64 0, i64 %indvars.iv16.i, i64 %indvars.iv.i
|
||||
%5 = load i32* %arrayidx5.us.i, align 4, !tbaa !0
|
||||
%5 = load i32* %arrayidx5.us.i, align 4
|
||||
%add.us.i = add nsw i32 %5, %Result.111.us.i
|
||||
%indvars.iv.next.i = add i64 %indvars.iv.i, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next.i to i32
|
||||
@ -128,7 +128,3 @@ SumArray.exit: ; preds = %for.inc6.us.i
|
||||
}
|
||||
|
||||
declare i32 @printf(i8* nocapture, ...) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -10,9 +10,9 @@ entry:
|
||||
|
||||
for.body: ; preds = %for.body, %entry
|
||||
%i.01 = phi i32 [ 0, %entry ], [ %inc, %for.body ]
|
||||
%0 = load volatile i32* @a, align 4, !tbaa !0
|
||||
%0 = load volatile i32* @a, align 4
|
||||
%add = add nsw i32 %0, %c
|
||||
store volatile i32 %add, i32* @a, align 4, !tbaa !0
|
||||
store volatile i32 %add, i32* @a, align 4
|
||||
%inc = add nsw i32 %i.01, 1
|
||||
%exitcond = icmp eq i32 %inc, 2048
|
||||
br i1 %exitcond, label %for.end, label %for.body
|
||||
@ -34,9 +34,9 @@ entry:
|
||||
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%i.02 = phi i32 [ %inc, %for.body ], [ 0, %entry ]
|
||||
%0 = load volatile i32* @a, align 4, !tbaa !0
|
||||
%0 = load volatile i32* @a, align 4
|
||||
%add = add nsw i32 %0, %c
|
||||
store volatile i32 %add, i32* @a, align 4, !tbaa !0
|
||||
store volatile i32 %add, i32* @a, align 4
|
||||
%inc = add nsw i32 %i.02, 1
|
||||
%exitcond = icmp eq i32 %inc, %d
|
||||
br i1 %exitcond, label %for.end, label %for.body
|
||||
@ -58,9 +58,9 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%i.02 = phi i32 [ %inc, %for.body ], [ 0, %entry ]
|
||||
%mul = mul nsw i32 %i.02, %c
|
||||
%0 = load volatile i32* @a, align 4, !tbaa !0
|
||||
%0 = load volatile i32* @a, align 4
|
||||
%add = add nsw i32 %0, %mul
|
||||
store volatile i32 %add, i32* @a, align 4, !tbaa !0
|
||||
store volatile i32 %add, i32* @a, align 4
|
||||
%inc = add nsw i32 %i.02, 1
|
||||
%exitcond = icmp eq i32 %inc, %d
|
||||
br i1 %exitcond, label %for.end, label %for.body
|
||||
@ -73,7 +73,3 @@ for.end: ; preds = %for.body, %entry
|
||||
; CHECK-NOT: cmplwi
|
||||
; CHECK: bdnz
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -8,7 +8,7 @@ entry:
|
||||
br i1 %tobool, label %if.end, label %if.then
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i32 0, i32* %P, align 4, !tbaa !0
|
||||
store i32 0, i32* %P, align 4
|
||||
br label %if.end
|
||||
|
||||
if.end: ; preds = %entry, %if.then
|
||||
@ -25,16 +25,16 @@ entry:
|
||||
br i1 %tobool, label %if.else, label %if.then
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i32 0, i32* %P, align 4, !tbaa !0
|
||||
store i32 0, i32* %P, align 4
|
||||
%tobool1 = icmp eq i32* %Q, null
|
||||
br i1 %tobool1, label %if.end3, label %if.then2
|
||||
|
||||
if.then2: ; preds = %if.then
|
||||
store i32 1, i32* %Q, align 4, !tbaa !0
|
||||
store i32 1, i32* %Q, align 4
|
||||
br label %if.end3
|
||||
|
||||
if.else: ; preds = %entry
|
||||
store i32 0, i32* %Q, align 4, !tbaa !0
|
||||
store i32 0, i32* %Q, align 4
|
||||
br label %if.end3
|
||||
|
||||
if.end3: ; preds = %if.then, %if.then2, %if.else
|
||||
@ -46,7 +46,3 @@ if.end3: ; preds = %if.then, %if.then2,
|
||||
}
|
||||
|
||||
attributes #0 = { nounwind }
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -4,7 +4,7 @@ target triple = "powerpc64-unknown-linux-gnu"
|
||||
|
||||
define fastcc void @allocateSpace(i1 %cond1, i1 %cond2) nounwind {
|
||||
entry:
|
||||
%0 = load i8** undef, align 8, !tbaa !0
|
||||
%0 = load i8** undef, align 8
|
||||
br i1 undef, label %return, label %lor.lhs.false
|
||||
|
||||
lor.lhs.false: ; preds = %entry
|
||||
@ -43,7 +43,3 @@ return: ; preds = %if.then45, %lor.lhs
|
||||
; CHECK: @allocateSpace
|
||||
; CHECK: lbzux
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -17,9 +17,9 @@ entry:
|
||||
%arraydecay1 = getelementptr inbounds [8200 x i32]* %v, i64 0, i64 0
|
||||
%arraydecay2 = getelementptr inbounds [8200 x i32]* %w, i64 0, i64 0
|
||||
call void @bar(i32* %arraydecay, i32* %arraydecay1, i32* %arraydecay2) #0
|
||||
%3 = load i32* %arraydecay2, align 4, !tbaa !0
|
||||
%3 = load i32* %arraydecay2, align 4
|
||||
%arrayidx3 = getelementptr inbounds [8200 x i32]* %w, i64 0, i64 1
|
||||
%4 = load i32* %arrayidx3, align 4, !tbaa !0
|
||||
%4 = load i32* %arrayidx3, align 4
|
||||
|
||||
; CHECK: @foo
|
||||
; CHECK-NOT: lwzx
|
||||
@ -41,8 +41,3 @@ declare void @bar(i32*, i32*, i32*)
|
||||
declare void @llvm.lifetime.end(i64, i8* nocapture) #0
|
||||
|
||||
attributes #0 = { nounwind }
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
||||
|
@ -37,34 +37,34 @@ for.body4: ; preds = %for.body4, %for.con
|
||||
%arrayidx = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv
|
||||
%arrayidx6 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv
|
||||
%0 = bitcast double* %arrayidx to <1 x double>*
|
||||
%1 = load <1 x double>* %0, align 32, !tbaa !0
|
||||
%1 = load <1 x double>* %0, align 32
|
||||
%add = fadd <1 x double> %1, <double 1.000000e+00>
|
||||
%2 = bitcast double* %arrayidx6 to <1 x double>*
|
||||
store <1 x double> %add, <1 x double>* %2, align 32, !tbaa !0
|
||||
store <1 x double> %add, <1 x double>* %2, align 32
|
||||
%indvars.iv.next.322 = or i64 %indvars.iv, 4
|
||||
%arrayidx.4 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.322
|
||||
%arrayidx6.4 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.322
|
||||
%3 = bitcast double* %arrayidx.4 to <1 x double>*
|
||||
%4 = load <1 x double>* %3, align 32, !tbaa !0
|
||||
%4 = load <1 x double>* %3, align 32
|
||||
%add.4 = fadd <1 x double> %4, <double 1.000000e+00>
|
||||
%5 = bitcast double* %arrayidx6.4 to <1 x double>*
|
||||
store <1 x double> %add.4, <1 x double>* %5, align 32, !tbaa !0
|
||||
store <1 x double> %add.4, <1 x double>* %5, align 32
|
||||
%indvars.iv.next.726 = or i64 %indvars.iv, 8
|
||||
%arrayidx.8 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.726
|
||||
%arrayidx6.8 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.726
|
||||
%6 = bitcast double* %arrayidx.8 to <1 x double>*
|
||||
%7 = load <1 x double>* %6, align 32, !tbaa !0
|
||||
%7 = load <1 x double>* %6, align 32
|
||||
%add.8 = fadd <1 x double> %7, <double 1.000000e+00>
|
||||
%8 = bitcast double* %arrayidx6.8 to <1 x double>*
|
||||
store <1 x double> %add.8, <1 x double>* %8, align 32, !tbaa !0
|
||||
store <1 x double> %add.8, <1 x double>* %8, align 32
|
||||
%indvars.iv.next.1130 = or i64 %indvars.iv, 12
|
||||
%arrayidx.12 = getelementptr inbounds [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.1130
|
||||
%arrayidx6.12 = getelementptr inbounds [16000 x double]* @X, i64 0, i64 %indvars.iv.next.1130
|
||||
%9 = bitcast double* %arrayidx.12 to <1 x double>*
|
||||
%10 = load <1 x double>* %9, align 32, !tbaa !0
|
||||
%10 = load <1 x double>* %9, align 32
|
||||
%add.12 = fadd <1 x double> %10, <double 1.000000e+00>
|
||||
%11 = bitcast double* %arrayidx6.12 to <1 x double>*
|
||||
store <1 x double> %add.12, <1 x double>* %11, align 32, !tbaa !0
|
||||
store <1 x double> %add.12, <1 x double>* %11, align 32
|
||||
%indvars.iv.next.15 = add i64 %indvars.iv, 16
|
||||
%lftr.wideiv.15 = trunc i64 %indvars.iv.next.15 to i32
|
||||
%exitcond.15 = icmp eq i32 %lftr.wideiv.15, 16000
|
||||
@ -95,7 +95,3 @@ for.end10: ; preds = %for.end
|
||||
declare i64 @clock() nounwind
|
||||
|
||||
declare signext i32 @dummy(double*, double*, double*, double*, double*, [256 x double]*, [256 x double]*, [256 x double]*, double)
|
||||
|
||||
!0 = metadata !{metadata !"double", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -8,15 +8,11 @@ target triple = "powerpc-unknown-linux"
|
||||
|
||||
define void @_GLOBAL__I_a() nounwind section ".text.startup" {
|
||||
entry:
|
||||
store i32 5, i32* getelementptr inbounds (%class.Two.0.5* @foo, i32 0, i32 0), align 4, !tbaa !0
|
||||
store i32 6, i32* getelementptr inbounds (%class.Two.0.5* @foo, i32 0, i32 1), align 4, !tbaa !0
|
||||
store i32 5, i32* getelementptr inbounds (%class.Two.0.5* @foo, i32 0, i32 0), align 4
|
||||
store i32 6, i32* getelementptr inbounds (%class.Two.0.5* @foo, i32 0, i32 1), align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: @_GLOBAL__I_a
|
||||
; CHECK-NOT: stwux
|
||||
; CHECK: stwu
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -14,7 +14,7 @@ entry:
|
||||
%_M_header.i.i.i.i.i.i = getelementptr inbounds %class.spell_checker.21.103.513.538* %this, i64 0, i32 0, i32 0, i32 0, i32 1
|
||||
%0 = bitcast %"struct.std::_Rb_tree_node_base.17.99.509.534"* %_M_header.i.i.i.i.i.i to i8*
|
||||
call void @llvm.memset.p0i8.i64(i8* %0, i8 0, i64 40, i32 4, i1 false) nounwind
|
||||
store %"struct.std::_Rb_tree_node_base.17.99.509.534"* %_M_header.i.i.i.i.i.i, %"struct.std::_Rb_tree_node_base.17.99.509.534"** undef, align 8, !tbaa !0
|
||||
store %"struct.std::_Rb_tree_node_base.17.99.509.534"* %_M_header.i.i.i.i.i.i, %"struct.std::_Rb_tree_node_base.17.99.509.534"** undef, align 8
|
||||
unreachable
|
||||
}
|
||||
|
||||
@ -22,7 +22,3 @@ entry:
|
||||
; CHECK: stwu
|
||||
|
||||
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -22,7 +22,7 @@ for.body: ; preds = %for.body, %entry
|
||||
%ai.06 = phi i32 [ %add, %for.body ], [ 0, %entry ]
|
||||
%i.07 = add nsw i32 %i.07.in, -1
|
||||
%arrayidx = getelementptr inbounds i32 addrspace(1)* %out, i32 %ai.06
|
||||
store i32 %i.07, i32 addrspace(1)* %arrayidx, align 4, !tbaa !4
|
||||
store i32 %i.07, i32 addrspace(1)* %arrayidx, align 4
|
||||
%add = add nsw i32 %ai.06, 1
|
||||
%exitcond = icmp eq i32 %add, %iterations
|
||||
br i1 %exitcond, label %for.end, label %for.body
|
||||
@ -39,6 +39,3 @@ attributes #0 = { nounwind "fp-contract-model"="standard" "relocation-model"="pi
|
||||
!1 = metadata !{null}
|
||||
!2 = metadata !{null}
|
||||
!3 = metadata !{null}
|
||||
!4 = metadata !{metadata !"int", metadata !5}
|
||||
!5 = metadata !{metadata !"omnipotent char", metadata !6}
|
||||
!6 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -18,13 +18,13 @@ define hidden void @func(i8* %Data) nounwind ssp {
|
||||
tail call void @def(%"myclass"* %2) nounwind
|
||||
%3 = getelementptr inbounds i8* %Data, i32 8
|
||||
%4 = bitcast i8* %3 to i8**
|
||||
%5 = load i8** %4, align 4, !tbaa !0
|
||||
%5 = load i8** %4, align 4
|
||||
tail call void @ghi(i8* %5) nounwind
|
||||
%6 = bitcast i8* %Data to void (i8*)**
|
||||
%7 = load void (i8*)** %6, align 4, !tbaa !0
|
||||
%7 = load void (i8*)** %6, align 4
|
||||
%8 = getelementptr inbounds i8* %Data, i32 4
|
||||
%9 = bitcast i8* %8 to i8**
|
||||
%10 = load i8** %9, align 4, !tbaa !0
|
||||
%10 = load i8** %9, align 4
|
||||
%11 = icmp eq i8* %Data, null
|
||||
br i1 %11, label %14, label %12
|
||||
|
||||
@ -47,7 +47,3 @@ declare void @abc(%"myclass"*)
|
||||
declare void @ghi(i8*)
|
||||
|
||||
declare %"myclass"* @jkl(%"myclass"*) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -96,7 +96,7 @@ while.body.i188: ; preds = %for.end173.i, %if.e
|
||||
while.body85.i: ; preds = %while.body85.i, %while.body.i188
|
||||
%aFreq.0518.i = phi i32 [ %add93.i, %while.body85.i ], [ 0, %while.body.i188 ]
|
||||
%inc87.i = add nsw i32 0, 1
|
||||
%tmp91.i = load i32* undef, align 4, !tbaa !0
|
||||
%tmp91.i = load i32* undef, align 4
|
||||
%add93.i = add nsw i32 %tmp91.i, %aFreq.0518.i
|
||||
%or.cond514.i = and i1 undef, false
|
||||
br i1 %or.cond514.i, label %while.body85.i, label %while.end.i
|
||||
@ -168,7 +168,3 @@ if.end85: ; preds = %entry
|
||||
}
|
||||
|
||||
declare void @fprintf(...) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -109,7 +109,7 @@ bb49: ; preds = %bb49, %bb48
|
||||
%tmp51 = add i32 %tmp50, undef
|
||||
%tmp52 = add i32 %tmp50, undef
|
||||
%tmp53 = getelementptr i32* %tmp13, i32 %tmp52
|
||||
%tmp54 = load i32* %tmp53, align 4, !tbaa !0
|
||||
%tmp54 = load i32* %tmp53, align 4
|
||||
%tmp55 = add i32 %tmp50, 1
|
||||
%tmp56 = icmp eq i32 %tmp55, %tmp8
|
||||
br i1 %tmp56, label %bb57, label %bb49
|
||||
@ -127,7 +127,7 @@ bb61: ; preds = %bb61, %bb59
|
||||
%tmp62 = phi i32 [ %tmp65, %bb61 ], [ 0, %bb59 ]
|
||||
%tmp63 = add i32 %tmp62, %tmp14
|
||||
%tmp64 = getelementptr i32* %tmp13, i32 %tmp63
|
||||
store i32 0, i32* %tmp64, align 4, !tbaa !0
|
||||
store i32 0, i32* %tmp64, align 4
|
||||
%tmp65 = add i32 %tmp62, 1
|
||||
%tmp66 = icmp eq i32 %tmp65, %tmp8
|
||||
br i1 %tmp66, label %bb67, label %bb61
|
||||
@ -149,7 +149,3 @@ declare void @Pjii(i32*, i32, i32) optsize
|
||||
declare i32 @llvm.eh.typeid.for(i8*) nounwind readnone
|
||||
|
||||
declare void @OnOverFlow() noreturn optsize ssp align 2
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -18,7 +18,7 @@ define signext i16 @subdivp(%struct.node.0.27* nocapture %p, double %dsq, double
|
||||
entry:
|
||||
call void @llvm.dbg.declare(metadata !{%struct.hgstruct.2.29* %hg}, metadata !4)
|
||||
%type = getelementptr inbounds %struct.node.0.27* %p, i64 0, i32 0
|
||||
%0 = load i16* %type, align 2, !tbaa !8
|
||||
%0 = load i16* %type, align 2
|
||||
%cmp = icmp eq i16 %0, 1
|
||||
br i1 %cmp, label %return, label %for.cond.preheader
|
||||
|
||||
@ -45,7 +45,4 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
|
||||
!5 = metadata !{i32 786473, metadata !11} ; [ DW_TAG_file_type ]
|
||||
!6 = metadata !{i32 786454, metadata !11, null, metadata !"hgstruct", i32 492, i64 0, i64 0, i64 0, i32 0, metadata !7} ; [ DW_TAG_typedef ] [hgstruct] [line 492, size 0, align 0, offset 0] [from ]
|
||||
!7 = metadata !{i32 786451, metadata !11, null, metadata !"", i32 487, i64 512, i64 64, i32 0, i32 0, null, null, i32 0, i32 0, i32 0} ; [ DW_TAG_structure_type ] [line 487, size 512, align 64, offset 0] [from ]
|
||||
!8 = metadata !{metadata !"short", metadata !9}
|
||||
!9 = metadata !{metadata !"omnipotent char", metadata !10}
|
||||
!10 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!11 = metadata !{metadata !"MultiSource/Benchmarks/Olden/bh/newbh.c", metadata !"MultiSource/Benchmarks/Olden/bh"}
|
||||
|
@ -9,7 +9,7 @@ target triple = "x86_64-apple-macosx10.8.0"
|
||||
|
||||
define void @main() #0 {
|
||||
entry:
|
||||
%0 = load <8 x float>* bitcast ([8 x float]* @b to <8 x float>*), align 32, !tbaa !0
|
||||
%0 = load <8 x float>* bitcast ([8 x float]* @b to <8 x float>*), align 32
|
||||
%bitcast.i = extractelement <8 x float> %0, i32 0
|
||||
%vecinit.i.i = insertelement <4 x float> undef, float %bitcast.i, i32 0
|
||||
%vecinit2.i.i = insertelement <4 x float> %vecinit.i.i, float 0.000000e+00, i32 1
|
||||
@ -17,7 +17,7 @@ entry:
|
||||
%vecinit4.i.i = insertelement <4 x float> %vecinit3.i.i, float 0.000000e+00, i32 3
|
||||
%1 = tail call <4 x float> @llvm.x86.sse.rcp.ss(<4 x float> %vecinit4.i.i) #2
|
||||
%vecext.i.i = extractelement <4 x float> %1, i32 0
|
||||
store float %vecext.i.i, float* getelementptr inbounds ([8 x float]* @e, i64 0, i64 0), align 16, !tbaa !0
|
||||
store float %vecext.i.i, float* getelementptr inbounds ([8 x float]* @e, i64 0, i64 0), align 16
|
||||
unreachable
|
||||
}
|
||||
|
||||
@ -26,6 +26,3 @@ declare <4 x float> @llvm.x86.sse.rcp.ss(<4 x float>) #1
|
||||
attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
||||
attributes #1 = { nounwind readnone }
|
||||
attributes #2 = { nounwind }
|
||||
|
||||
!0 = metadata !{metadata !"omnipotent char", metadata !1}
|
||||
!1 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -524,7 +524,7 @@ entry:
|
||||
br i1 %cond, label %entry.if.then_crit_edge, label %lor.lhs.false, !prof !1
|
||||
|
||||
entry.if.then_crit_edge:
|
||||
%.pre14 = load i8* undef, align 1, !tbaa !0
|
||||
%.pre14 = load i8* undef, align 1
|
||||
br label %if.then
|
||||
|
||||
lor.lhs.false:
|
||||
@ -537,7 +537,7 @@ exit:
|
||||
if.then:
|
||||
%0 = phi i8 [ %.pre14, %entry.if.then_crit_edge ], [ undef, %exit ]
|
||||
%1 = and i8 %0, 1
|
||||
store i8 %1, i8* undef, align 4, !tbaa !0
|
||||
store i8 %1, i8* undef, align 4
|
||||
br label %if.end
|
||||
|
||||
if.end:
|
||||
|
@ -12,10 +12,10 @@ target triple = "x86_64-apple-macosx10.8.0"
|
||||
|
||||
define void @func() nounwind uwtable ssp {
|
||||
for.body.lr.ph:
|
||||
%0 = load i32* @g2, align 4, !tbaa !0
|
||||
%0 = load i32* @g2, align 4
|
||||
%tobool6 = icmp eq i32 %0, 0
|
||||
%s.promoted = load i16* @s, align 2
|
||||
%.pre = load i32* @g1, align 4, !tbaa !0
|
||||
%.pre = load i32* @g1, align 4
|
||||
br i1 %tobool6, label %for.body.us, label %for.body
|
||||
|
||||
for.body.us: ; preds = %for.body.lr.ph, %for.inc.us
|
||||
@ -43,11 +43,11 @@ for.inc.us: ; preds = %cond.end.us, %for.b
|
||||
cond.end.us: ; preds = %if.then7.us, %cond.false.us
|
||||
%4 = phi i32 [ 0, %cond.false.us ], [ %1, %if.then7.us ]
|
||||
%cond.us = phi i32 [ 0, %cond.false.us ], [ %v.010.us, %if.then7.us ]
|
||||
store i32 %cond.us, i32* @g0, align 4, !tbaa !0
|
||||
store i32 %cond.us, i32* @g0, align 4
|
||||
br label %for.inc.us
|
||||
|
||||
cond.false.us: ; preds = %if.then7.us
|
||||
store i32 0, i32* @g1, align 4, !tbaa !0
|
||||
store i32 0, i32* @g1, align 4
|
||||
br label %cond.end.us
|
||||
|
||||
if.then7.us: ; preds = %for.body.us
|
||||
@ -76,7 +76,3 @@ for.end: ; preds = %for.inc.us, %for.bo
|
||||
store i16 %dec12.lcssa, i16* @s, align 2
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -238,7 +238,7 @@ declare i64 @llvm.objectsize.i64(i8*, i1) nounwind readnone
|
||||
|
||||
define void @_ZNK4llvm17MipsFrameLowering12emitPrologueERNS_15MachineFunctionE() ssp align 2 {
|
||||
bb:
|
||||
%tmp = load %t9** undef, align 4, !tbaa !0
|
||||
%tmp = load %t9** undef, align 4
|
||||
%tmp2 = getelementptr inbounds %t9* %tmp, i32 0, i32 0
|
||||
%tmp3 = getelementptr inbounds %t9* %tmp, i32 0, i32 0, i32 0, i32 0, i32 1
|
||||
br label %bb4
|
||||
|
@ -7,8 +7,8 @@ define zeroext i1 @_Z3iseRKxS0_(i64* nocapture %LHS, i64* nocapture %RHS) nounwi
|
||||
entry:
|
||||
tail call void @llvm.dbg.value(metadata !{i64* %LHS}, i64 0, metadata !7), !dbg !13
|
||||
tail call void @llvm.dbg.value(metadata !{i64* %RHS}, i64 0, metadata !11), !dbg !14
|
||||
%tmp1 = load i64* %LHS, align 4, !dbg !15, !tbaa !17
|
||||
%tmp3 = load i64* %RHS, align 4, !dbg !15, !tbaa !17
|
||||
%tmp1 = load i64* %LHS, align 4, !dbg !15
|
||||
%tmp3 = load i64* %RHS, align 4, !dbg !15
|
||||
%cmp = icmp eq i64 %tmp1, %tmp3, !dbg !15
|
||||
ret i1 %cmp, !dbg !15
|
||||
}
|
||||
@ -47,9 +47,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
|
||||
!14 = metadata !{i32 2, i32 49, metadata !1, null}
|
||||
!15 = metadata !{i32 3, i32 3, metadata !16, null}
|
||||
!16 = metadata !{i32 786443, metadata !2, metadata !1, i32 2, i32 54, i32 0} ; [ DW_TAG_lexical_block ]
|
||||
!17 = metadata !{metadata !"long long", metadata !18}
|
||||
!18 = metadata !{metadata !"omnipotent char", metadata !19}
|
||||
!19 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!20 = metadata !{i32 6, i32 19, metadata !6, null}
|
||||
!21 = metadata !{i32 786689, metadata !1, metadata !"LHS", metadata !2, i32 16777218, metadata !8, i32 0, metadata !22} ; [ DW_TAG_arg_variable ]
|
||||
!22 = metadata !{i32 7, i32 10, metadata !23, null}
|
||||
|
@ -6,7 +6,7 @@ define i32 @bar(%struct.a* nocapture %b) nounwind ssp {
|
||||
entry:
|
||||
tail call void @llvm.dbg.value(metadata !{%struct.a* %b}, i64 0, metadata !6), !dbg !13
|
||||
%tmp1 = getelementptr inbounds %struct.a* %b, i64 0, i32 0, !dbg !14
|
||||
%tmp2 = load i32* %tmp1, align 4, !dbg !14, !tbaa !15
|
||||
%tmp2 = load i32* %tmp1, align 4, !dbg !14
|
||||
tail call void @llvm.dbg.value(metadata !{i32 %tmp2}, i64 0, metadata !11), !dbg !14
|
||||
%call = tail call i32 (...)* @foo(i32 %tmp2) nounwind , !dbg !18
|
||||
%add = add nsw i32 %tmp2, 1, !dbg !19
|
||||
@ -34,9 +34,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
|
||||
!12 = metadata !{i32 786443, metadata !22, metadata !0, i32 5, i32 22, i32 0} ; [ DW_TAG_lexical_block ]
|
||||
!13 = metadata !{i32 5, i32 19, metadata !0, null}
|
||||
!14 = metadata !{i32 6, i32 14, metadata !12, null}
|
||||
!15 = metadata !{metadata !"int", metadata !16}
|
||||
!16 = metadata !{metadata !"omnipotent char", metadata !17}
|
||||
!17 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!18 = metadata !{i32 7, i32 2, metadata !12, null}
|
||||
!19 = metadata !{i32 8, i32 2, metadata !12, null}
|
||||
!20 = metadata !{metadata !0}
|
||||
|
@ -12,86 +12,86 @@
|
||||
define void @wrap_mul4(double* nocapture %Out, [4 x double]* nocapture %A, [4 x double]* nocapture %B) #0 {
|
||||
entry:
|
||||
%arrayidx1.i = getelementptr inbounds [4 x double]* %A, i64 0, i64 0
|
||||
%0 = load double* %arrayidx1.i, align 8, !tbaa !0
|
||||
%0 = load double* %arrayidx1.i, align 8
|
||||
%arrayidx3.i = getelementptr inbounds [4 x double]* %B, i64 0, i64 0
|
||||
%1 = load double* %arrayidx3.i, align 8, !tbaa !0
|
||||
%1 = load double* %arrayidx3.i, align 8
|
||||
%mul.i = fmul double %0, %1
|
||||
%arrayidx5.i = getelementptr inbounds [4 x double]* %A, i64 0, i64 1
|
||||
%2 = load double* %arrayidx5.i, align 8, !tbaa !0
|
||||
%2 = load double* %arrayidx5.i, align 8
|
||||
%arrayidx7.i = getelementptr inbounds [4 x double]* %B, i64 1, i64 0
|
||||
%3 = load double* %arrayidx7.i, align 8, !tbaa !0
|
||||
%3 = load double* %arrayidx7.i, align 8
|
||||
%mul8.i = fmul double %2, %3
|
||||
%add.i = fadd double %mul.i, %mul8.i
|
||||
%arrayidx10.i = getelementptr inbounds [4 x double]* %A, i64 0, i64 2
|
||||
%4 = load double* %arrayidx10.i, align 8, !tbaa !0
|
||||
%4 = load double* %arrayidx10.i, align 8
|
||||
%arrayidx12.i = getelementptr inbounds [4 x double]* %B, i64 2, i64 0
|
||||
%5 = load double* %arrayidx12.i, align 8, !tbaa !0
|
||||
%5 = load double* %arrayidx12.i, align 8
|
||||
%mul13.i = fmul double %4, %5
|
||||
%add14.i = fadd double %add.i, %mul13.i
|
||||
%arrayidx16.i = getelementptr inbounds [4 x double]* %A, i64 0, i64 3
|
||||
%6 = load double* %arrayidx16.i, align 8, !tbaa !0
|
||||
%6 = load double* %arrayidx16.i, align 8
|
||||
%arrayidx18.i = getelementptr inbounds [4 x double]* %B, i64 3, i64 0
|
||||
%7 = load double* %arrayidx18.i, align 8, !tbaa !0
|
||||
%7 = load double* %arrayidx18.i, align 8
|
||||
%mul19.i = fmul double %6, %7
|
||||
%add20.i = fadd double %add14.i, %mul19.i
|
||||
%arrayidx25.i = getelementptr inbounds [4 x double]* %B, i64 0, i64 1
|
||||
%8 = load double* %arrayidx25.i, align 8, !tbaa !0
|
||||
%8 = load double* %arrayidx25.i, align 8
|
||||
%mul26.i = fmul double %0, %8
|
||||
%arrayidx30.i = getelementptr inbounds [4 x double]* %B, i64 1, i64 1
|
||||
%9 = load double* %arrayidx30.i, align 8, !tbaa !0
|
||||
%9 = load double* %arrayidx30.i, align 8
|
||||
%mul31.i = fmul double %2, %9
|
||||
%add32.i = fadd double %mul26.i, %mul31.i
|
||||
%arrayidx36.i = getelementptr inbounds [4 x double]* %B, i64 2, i64 1
|
||||
%10 = load double* %arrayidx36.i, align 8, !tbaa !0
|
||||
%10 = load double* %arrayidx36.i, align 8
|
||||
%mul37.i = fmul double %4, %10
|
||||
%add38.i = fadd double %add32.i, %mul37.i
|
||||
%arrayidx42.i = getelementptr inbounds [4 x double]* %B, i64 3, i64 1
|
||||
%11 = load double* %arrayidx42.i, align 8, !tbaa !0
|
||||
%11 = load double* %arrayidx42.i, align 8
|
||||
%mul43.i = fmul double %6, %11
|
||||
%add44.i = fadd double %add38.i, %mul43.i
|
||||
%arrayidx49.i = getelementptr inbounds [4 x double]* %B, i64 0, i64 2
|
||||
%12 = load double* %arrayidx49.i, align 8, !tbaa !0
|
||||
%12 = load double* %arrayidx49.i, align 8
|
||||
%mul50.i = fmul double %0, %12
|
||||
%arrayidx54.i = getelementptr inbounds [4 x double]* %B, i64 1, i64 2
|
||||
%13 = load double* %arrayidx54.i, align 8, !tbaa !0
|
||||
%13 = load double* %arrayidx54.i, align 8
|
||||
%mul55.i = fmul double %2, %13
|
||||
%add56.i = fadd double %mul50.i, %mul55.i
|
||||
%arrayidx60.i = getelementptr inbounds [4 x double]* %B, i64 2, i64 2
|
||||
%14 = load double* %arrayidx60.i, align 8, !tbaa !0
|
||||
%14 = load double* %arrayidx60.i, align 8
|
||||
%mul61.i = fmul double %4, %14
|
||||
%add62.i = fadd double %add56.i, %mul61.i
|
||||
%arrayidx66.i = getelementptr inbounds [4 x double]* %B, i64 3, i64 2
|
||||
%15 = load double* %arrayidx66.i, align 8, !tbaa !0
|
||||
%15 = load double* %arrayidx66.i, align 8
|
||||
%mul67.i = fmul double %6, %15
|
||||
%add68.i = fadd double %add62.i, %mul67.i
|
||||
%arrayidx73.i = getelementptr inbounds [4 x double]* %B, i64 0, i64 3
|
||||
%16 = load double* %arrayidx73.i, align 8, !tbaa !0
|
||||
%16 = load double* %arrayidx73.i, align 8
|
||||
%mul74.i = fmul double %0, %16
|
||||
%arrayidx78.i = getelementptr inbounds [4 x double]* %B, i64 1, i64 3
|
||||
%17 = load double* %arrayidx78.i, align 8, !tbaa !0
|
||||
%17 = load double* %arrayidx78.i, align 8
|
||||
%mul79.i = fmul double %2, %17
|
||||
%add80.i = fadd double %mul74.i, %mul79.i
|
||||
%arrayidx84.i = getelementptr inbounds [4 x double]* %B, i64 2, i64 3
|
||||
%18 = load double* %arrayidx84.i, align 8, !tbaa !0
|
||||
%18 = load double* %arrayidx84.i, align 8
|
||||
%mul85.i = fmul double %4, %18
|
||||
%add86.i = fadd double %add80.i, %mul85.i
|
||||
%arrayidx90.i = getelementptr inbounds [4 x double]* %B, i64 3, i64 3
|
||||
%19 = load double* %arrayidx90.i, align 8, !tbaa !0
|
||||
%19 = load double* %arrayidx90.i, align 8
|
||||
%mul91.i = fmul double %6, %19
|
||||
%add92.i = fadd double %add86.i, %mul91.i
|
||||
%arrayidx95.i = getelementptr inbounds [4 x double]* %A, i64 1, i64 0
|
||||
%20 = load double* %arrayidx95.i, align 8, !tbaa !0
|
||||
%20 = load double* %arrayidx95.i, align 8
|
||||
%mul98.i = fmul double %1, %20
|
||||
%arrayidx100.i = getelementptr inbounds [4 x double]* %A, i64 1, i64 1
|
||||
%21 = load double* %arrayidx100.i, align 8, !tbaa !0
|
||||
%21 = load double* %arrayidx100.i, align 8
|
||||
%mul103.i = fmul double %3, %21
|
||||
%add104.i = fadd double %mul98.i, %mul103.i
|
||||
%arrayidx106.i = getelementptr inbounds [4 x double]* %A, i64 1, i64 2
|
||||
%22 = load double* %arrayidx106.i, align 8, !tbaa !0
|
||||
%22 = load double* %arrayidx106.i, align 8
|
||||
%mul109.i = fmul double %5, %22
|
||||
%add110.i = fadd double %add104.i, %mul109.i
|
||||
%arrayidx112.i = getelementptr inbounds [4 x double]* %A, i64 1, i64 3
|
||||
%23 = load double* %arrayidx112.i, align 8, !tbaa !0
|
||||
%23 = load double* %arrayidx112.i, align 8
|
||||
%mul115.i = fmul double %7, %23
|
||||
%add116.i = fadd double %add110.i, %mul115.i
|
||||
%mul122.i = fmul double %8, %20
|
||||
@ -116,18 +116,18 @@ entry:
|
||||
%mul187.i = fmul double %19, %23
|
||||
%add188.i = fadd double %add182.i, %mul187.i
|
||||
%arrayidx191.i = getelementptr inbounds [4 x double]* %A, i64 2, i64 0
|
||||
%24 = load double* %arrayidx191.i, align 8, !tbaa !0
|
||||
%24 = load double* %arrayidx191.i, align 8
|
||||
%mul194.i = fmul double %1, %24
|
||||
%arrayidx196.i = getelementptr inbounds [4 x double]* %A, i64 2, i64 1
|
||||
%25 = load double* %arrayidx196.i, align 8, !tbaa !0
|
||||
%25 = load double* %arrayidx196.i, align 8
|
||||
%mul199.i = fmul double %3, %25
|
||||
%add200.i = fadd double %mul194.i, %mul199.i
|
||||
%arrayidx202.i = getelementptr inbounds [4 x double]* %A, i64 2, i64 2
|
||||
%26 = load double* %arrayidx202.i, align 8, !tbaa !0
|
||||
%26 = load double* %arrayidx202.i, align 8
|
||||
%mul205.i = fmul double %5, %26
|
||||
%add206.i = fadd double %add200.i, %mul205.i
|
||||
%arrayidx208.i = getelementptr inbounds [4 x double]* %A, i64 2, i64 3
|
||||
%27 = load double* %arrayidx208.i, align 8, !tbaa !0
|
||||
%27 = load double* %arrayidx208.i, align 8
|
||||
%mul211.i = fmul double %7, %27
|
||||
%add212.i = fadd double %add206.i, %mul211.i
|
||||
%mul218.i = fmul double %8, %24
|
||||
@ -152,18 +152,18 @@ entry:
|
||||
%mul283.i = fmul double %19, %27
|
||||
%add284.i = fadd double %add278.i, %mul283.i
|
||||
%arrayidx287.i = getelementptr inbounds [4 x double]* %A, i64 3, i64 0
|
||||
%28 = load double* %arrayidx287.i, align 8, !tbaa !0
|
||||
%28 = load double* %arrayidx287.i, align 8
|
||||
%mul290.i = fmul double %1, %28
|
||||
%arrayidx292.i = getelementptr inbounds [4 x double]* %A, i64 3, i64 1
|
||||
%29 = load double* %arrayidx292.i, align 8, !tbaa !0
|
||||
%29 = load double* %arrayidx292.i, align 8
|
||||
%mul295.i = fmul double %3, %29
|
||||
%add296.i = fadd double %mul290.i, %mul295.i
|
||||
%arrayidx298.i = getelementptr inbounds [4 x double]* %A, i64 3, i64 2
|
||||
%30 = load double* %arrayidx298.i, align 8, !tbaa !0
|
||||
%30 = load double* %arrayidx298.i, align 8
|
||||
%mul301.i = fmul double %5, %30
|
||||
%add302.i = fadd double %add296.i, %mul301.i
|
||||
%arrayidx304.i = getelementptr inbounds [4 x double]* %A, i64 3, i64 3
|
||||
%31 = load double* %arrayidx304.i, align 8, !tbaa !0
|
||||
%31 = load double* %arrayidx304.i, align 8
|
||||
%mul307.i = fmul double %7, %31
|
||||
%add308.i = fadd double %add302.i, %mul307.i
|
||||
%mul314.i = fmul double %8, %28
|
||||
@ -222,7 +222,3 @@ entry:
|
||||
}
|
||||
|
||||
attributes #0 = { noinline nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
||||
|
||||
!0 = metadata !{metadata !"double", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -94,57 +94,57 @@ entry:
|
||||
for.body: ; preds = %for.body, %entry
|
||||
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%arrayidx8 = getelementptr inbounds [4 x i32]* %m1, i64 %indvars.iv, i64 0
|
||||
%tmp = load i32* %arrayidx8, align 4, !tbaa !0
|
||||
%tmp = load i32* %arrayidx8, align 4
|
||||
%arrayidx12 = getelementptr inbounds [4 x i32]* %m2, i64 0, i64 0
|
||||
%tmp1 = load i32* %arrayidx12, align 4, !tbaa !0
|
||||
%tmp1 = load i32* %arrayidx12, align 4
|
||||
%arrayidx8.1 = getelementptr inbounds [4 x i32]* %m1, i64 %indvars.iv, i64 1
|
||||
%tmp2 = load i32* %arrayidx8.1, align 4, !tbaa !0
|
||||
%tmp2 = load i32* %arrayidx8.1, align 4
|
||||
%arrayidx12.1 = getelementptr inbounds [4 x i32]* %m2, i64 1, i64 0
|
||||
%tmp3 = load i32* %arrayidx12.1, align 4, !tbaa !0
|
||||
%tmp3 = load i32* %arrayidx12.1, align 4
|
||||
%arrayidx8.2 = getelementptr inbounds [4 x i32]* %m1, i64 %indvars.iv, i64 2
|
||||
%tmp4 = load i32* %arrayidx8.2, align 4, !tbaa !0
|
||||
%tmp4 = load i32* %arrayidx8.2, align 4
|
||||
%arrayidx12.2 = getelementptr inbounds [4 x i32]* %m2, i64 2, i64 0
|
||||
%tmp5 = load i32* %arrayidx12.2, align 4, !tbaa !0
|
||||
%tmp5 = load i32* %arrayidx12.2, align 4
|
||||
%arrayidx8.3 = getelementptr inbounds [4 x i32]* %m1, i64 %indvars.iv, i64 3
|
||||
%tmp6 = load i32* %arrayidx8.3, align 4, !tbaa !0
|
||||
%tmp6 = load i32* %arrayidx8.3, align 4
|
||||
%arrayidx12.3 = getelementptr inbounds [4 x i32]* %m2, i64 3, i64 0
|
||||
%tmp8 = load i32* %arrayidx8, align 4, !tbaa !0
|
||||
%tmp8 = load i32* %arrayidx8, align 4
|
||||
%arrayidx12.137 = getelementptr inbounds [4 x i32]* %m2, i64 0, i64 1
|
||||
%tmp9 = load i32* %arrayidx12.137, align 4, !tbaa !0
|
||||
%tmp10 = load i32* %arrayidx8.1, align 4, !tbaa !0
|
||||
%tmp9 = load i32* %arrayidx12.137, align 4
|
||||
%tmp10 = load i32* %arrayidx8.1, align 4
|
||||
%arrayidx12.1.1 = getelementptr inbounds [4 x i32]* %m2, i64 1, i64 1
|
||||
%tmp11 = load i32* %arrayidx12.1.1, align 4, !tbaa !0
|
||||
%tmp12 = load i32* %arrayidx8.2, align 4, !tbaa !0
|
||||
%tmp11 = load i32* %arrayidx12.1.1, align 4
|
||||
%tmp12 = load i32* %arrayidx8.2, align 4
|
||||
%arrayidx12.2.1 = getelementptr inbounds [4 x i32]* %m2, i64 2, i64 1
|
||||
%tmp13 = load i32* %arrayidx12.2.1, align 4, !tbaa !0
|
||||
%tmp14 = load i32* %arrayidx8.3, align 4, !tbaa !0
|
||||
%tmp13 = load i32* %arrayidx12.2.1, align 4
|
||||
%tmp14 = load i32* %arrayidx8.3, align 4
|
||||
%arrayidx12.3.1 = getelementptr inbounds [4 x i32]* %m2, i64 3, i64 1
|
||||
%tmp15 = load i32* %arrayidx12.3.1, align 4, !tbaa !0
|
||||
%tmp16 = load i32* %arrayidx8, align 4, !tbaa !0
|
||||
%tmp15 = load i32* %arrayidx12.3.1, align 4
|
||||
%tmp16 = load i32* %arrayidx8, align 4
|
||||
%arrayidx12.239 = getelementptr inbounds [4 x i32]* %m2, i64 0, i64 2
|
||||
%tmp17 = load i32* %arrayidx12.239, align 4, !tbaa !0
|
||||
%tmp18 = load i32* %arrayidx8.1, align 4, !tbaa !0
|
||||
%tmp17 = load i32* %arrayidx12.239, align 4
|
||||
%tmp18 = load i32* %arrayidx8.1, align 4
|
||||
%arrayidx12.1.2 = getelementptr inbounds [4 x i32]* %m2, i64 1, i64 2
|
||||
%tmp19 = load i32* %arrayidx12.1.2, align 4, !tbaa !0
|
||||
%tmp20 = load i32* %arrayidx8.2, align 4, !tbaa !0
|
||||
%tmp19 = load i32* %arrayidx12.1.2, align 4
|
||||
%tmp20 = load i32* %arrayidx8.2, align 4
|
||||
%arrayidx12.2.2 = getelementptr inbounds [4 x i32]* %m2, i64 2, i64 2
|
||||
%tmp21 = load i32* %arrayidx12.2.2, align 4, !tbaa !0
|
||||
%tmp22 = load i32* %arrayidx8.3, align 4, !tbaa !0
|
||||
%tmp21 = load i32* %arrayidx12.2.2, align 4
|
||||
%tmp22 = load i32* %arrayidx8.3, align 4
|
||||
%arrayidx12.3.2 = getelementptr inbounds [4 x i32]* %m2, i64 3, i64 2
|
||||
%tmp23 = load i32* %arrayidx12.3.2, align 4, !tbaa !0
|
||||
%tmp24 = load i32* %arrayidx8, align 4, !tbaa !0
|
||||
%tmp23 = load i32* %arrayidx12.3.2, align 4
|
||||
%tmp24 = load i32* %arrayidx8, align 4
|
||||
%arrayidx12.341 = getelementptr inbounds [4 x i32]* %m2, i64 0, i64 3
|
||||
%tmp25 = load i32* %arrayidx12.341, align 4, !tbaa !0
|
||||
%tmp26 = load i32* %arrayidx8.1, align 4, !tbaa !0
|
||||
%tmp25 = load i32* %arrayidx12.341, align 4
|
||||
%tmp26 = load i32* %arrayidx8.1, align 4
|
||||
%arrayidx12.1.3 = getelementptr inbounds [4 x i32]* %m2, i64 1, i64 3
|
||||
%tmp27 = load i32* %arrayidx12.1.3, align 4, !tbaa !0
|
||||
%tmp28 = load i32* %arrayidx8.2, align 4, !tbaa !0
|
||||
%tmp27 = load i32* %arrayidx12.1.3, align 4
|
||||
%tmp28 = load i32* %arrayidx8.2, align 4
|
||||
%arrayidx12.2.3 = getelementptr inbounds [4 x i32]* %m2, i64 2, i64 3
|
||||
%tmp29 = load i32* %arrayidx12.2.3, align 4, !tbaa !0
|
||||
%tmp30 = load i32* %arrayidx8.3, align 4, !tbaa !0
|
||||
%tmp29 = load i32* %arrayidx12.2.3, align 4
|
||||
%tmp30 = load i32* %arrayidx8.3, align 4
|
||||
%arrayidx12.3.3 = getelementptr inbounds [4 x i32]* %m2, i64 3, i64 3
|
||||
%tmp31 = load i32* %arrayidx12.3.3, align 4, !tbaa !0
|
||||
%tmp7 = load i32* %arrayidx12.3, align 4, !tbaa !0
|
||||
%tmp31 = load i32* %arrayidx12.3.3, align 4
|
||||
%tmp7 = load i32* %arrayidx12.3, align 4
|
||||
%mul = mul nsw i32 %tmp1, %tmp
|
||||
%mul.1 = mul nsw i32 %tmp3, %tmp2
|
||||
%mul.2 = mul nsw i32 %tmp5, %tmp4
|
||||
@ -174,13 +174,13 @@ for.body: ; preds = %for.body, %entry
|
||||
%add.2.3 = add nsw i32 %mul.2.3, %add.1.3
|
||||
%add.3.3 = add nsw i32 %mul.3.3, %add.2.3
|
||||
%arrayidx16 = getelementptr inbounds [4 x i32]* %m3, i64 %indvars.iv, i64 0
|
||||
store i32 %add.3, i32* %arrayidx16, align 4, !tbaa !0
|
||||
store i32 %add.3, i32* %arrayidx16, align 4
|
||||
%arrayidx16.1 = getelementptr inbounds [4 x i32]* %m3, i64 %indvars.iv, i64 1
|
||||
store i32 %add.3.1, i32* %arrayidx16.1, align 4, !tbaa !0
|
||||
store i32 %add.3.1, i32* %arrayidx16.1, align 4
|
||||
%arrayidx16.2 = getelementptr inbounds [4 x i32]* %m3, i64 %indvars.iv, i64 2
|
||||
store i32 %add.3.2, i32* %arrayidx16.2, align 4, !tbaa !0
|
||||
store i32 %add.3.2, i32* %arrayidx16.2, align 4
|
||||
%arrayidx16.3 = getelementptr inbounds [4 x i32]* %m3, i64 %indvars.iv, i64 3
|
||||
store i32 %add.3.3, i32* %arrayidx16.3, align 4, !tbaa !0
|
||||
store i32 %add.3.3, i32* %arrayidx16.3, 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, 4
|
||||
@ -189,7 +189,3 @@ for.body: ; preds = %for.body, %entry
|
||||
for.end: ; preds = %for.body
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -6,13 +6,10 @@ target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
define void @func() nounwind uwtable {
|
||||
entry:
|
||||
%0 = load i8* @c0, align 1, !tbaa !0
|
||||
%0 = load i8* @c0, align 1
|
||||
%tobool = icmp ne i8 %0, 0
|
||||
%conv = zext i1 %tobool to i8
|
||||
%storemerge = shl nuw nsw i8 %conv, %conv
|
||||
store i8 %storemerge, i8* @c0, align 1
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"omnipotent char", metadata !1}
|
||||
!1 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -14,12 +14,12 @@ entry:
|
||||
for.body:
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %b, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%arrayidx2 = getelementptr inbounds float* %c, i64 %indvars.iv
|
||||
%1 = load float* %arrayidx2, align 4, !tbaa !0
|
||||
%1 = load float* %arrayidx2, align 4
|
||||
%mul = fmul float %0, %1
|
||||
%arrayidx4 = getelementptr inbounds float* %a, i64 %indvars.iv
|
||||
store float %mul, float* %arrayidx4, align 4, !tbaa !0
|
||||
store float %mul, 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
|
||||
@ -43,12 +43,12 @@ entry:
|
||||
for.body:
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %b, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%arrayidx2 = getelementptr inbounds float* %c, i64 %indvars.iv
|
||||
%1 = load float* %arrayidx2, align 4, !tbaa !0
|
||||
%1 = load float* %arrayidx2, align 4
|
||||
%mul = fmul float %0, %1
|
||||
%arrayidx4 = getelementptr inbounds float* %a, i64 %indvars.iv
|
||||
store float %mul, float* %arrayidx4, align 4, !tbaa !0
|
||||
store float %mul, 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
|
||||
@ -60,7 +60,3 @@ for.end:
|
||||
|
||||
attributes #0 = { nounwind optsize ssp uwtable "target-cpu"="core2" "target-features"="-sse4a,-avx2,-xop,-fma4,-bmi2,-3dnow,-3dnowa,-pclmul,-sse,-avx,-sse41,-ssse3,+mmx,-rtm,-sse42,-lzcnt,-f16c,-popcnt,-bmi,-aes,-fma,-rdrand,-sse2,-sse3" }
|
||||
attributes #1 = { nounwind optsize ssp uwtable "target-cpu"="core2" "target-features"="-sse4a,-avx2,-xop,-fma4,-bmi2,-3dnow,-3dnowa,-pclmul,+sse,-avx,-sse41,+ssse3,+mmx,-rtm,-sse42,-lzcnt,-f16c,-popcnt,-bmi,-aes,-fma,-rdrand,+sse2,+sse3" }
|
||||
|
||||
!0 = metadata !{metadata !"float", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -39,7 +39,7 @@ declare void @bar2(i8*, i64) optsize noredzone
|
||||
; WIN64: callq
|
||||
define i8* @foo2(i8* %arg) nounwind optsize ssp noredzone {
|
||||
entry:
|
||||
%tmp1 = load i8** @sel, align 8, !tbaa !0
|
||||
%tmp1 = load i8** @sel, align 8
|
||||
%call = tail call i8* (i8*, i8*, ...)* @x2(i8* %arg, i8* %tmp1) nounwind optsize noredzone
|
||||
ret i8* %call
|
||||
}
|
||||
@ -52,10 +52,10 @@ declare i8* @x2(i8*, i8*, ...) optsize noredzone
|
||||
; WIN64: callq
|
||||
define i8* @foo6(i8* %arg1, i8* %arg2) nounwind optsize ssp noredzone {
|
||||
entry:
|
||||
%tmp2 = load i8** @sel3, align 8, !tbaa !0
|
||||
%tmp3 = load i8** @sel4, align 8, !tbaa !0
|
||||
%tmp4 = load i8** @sel5, align 8, !tbaa !0
|
||||
%tmp5 = load i8** @sel6, align 8, !tbaa !0
|
||||
%tmp2 = load i8** @sel3, align 8
|
||||
%tmp3 = load i8** @sel4, align 8
|
||||
%tmp4 = load i8** @sel5, align 8
|
||||
%tmp5 = load i8** @sel6, align 8
|
||||
%call = tail call i8* (i8*, i8*, i8*, ...)* @x3(i8* %arg1, i8* %arg2, i8* %tmp2, i8* %tmp3, i8* %tmp4, i8* %tmp5) nounwind optsize noredzone
|
||||
ret i8* %call
|
||||
}
|
||||
@ -68,11 +68,11 @@ declare i8* @x3(i8*, i8*, i8*, ...) optsize noredzone
|
||||
; WIN64: callq
|
||||
define i8* @foo7(i8* %arg1, i8* %arg2) nounwind optsize ssp noredzone {
|
||||
entry:
|
||||
%tmp2 = load i8** @sel3, align 8, !tbaa !0
|
||||
%tmp3 = load i8** @sel4, align 8, !tbaa !0
|
||||
%tmp4 = load i8** @sel5, align 8, !tbaa !0
|
||||
%tmp5 = load i8** @sel6, align 8, !tbaa !0
|
||||
%tmp6 = load i8** @sel7, align 8, !tbaa !0
|
||||
%tmp2 = load i8** @sel3, align 8
|
||||
%tmp3 = load i8** @sel4, align 8
|
||||
%tmp4 = load i8** @sel5, align 8
|
||||
%tmp5 = load i8** @sel6, align 8
|
||||
%tmp6 = load i8** @sel7, align 8
|
||||
%call = tail call i8* (i8*, i8*, i8*, i8*, i8*, i8*, i8*, ...)* @x7(i8* %arg1, i8* %arg2, i8* %tmp2, i8* %tmp3, i8* %tmp4, i8* %tmp5, i8* %tmp6) nounwind optsize noredzone
|
||||
ret i8* %call
|
||||
}
|
||||
@ -85,14 +85,10 @@ declare i8* @x7(i8*, i8*, i8*, i8*, i8*, i8*, i8*, ...) optsize noredzone
|
||||
; WIN64: callq
|
||||
define i8* @foo8(i8* %arg1, i8* %arg2) nounwind optsize ssp noredzone {
|
||||
entry:
|
||||
%tmp2 = load i8** @sel3, align 8, !tbaa !0
|
||||
%tmp3 = load i8** @sel4, align 8, !tbaa !0
|
||||
%tmp4 = load i8** @sel5, align 8, !tbaa !0
|
||||
%tmp5 = load i8** @sel6, align 8, !tbaa !0
|
||||
%tmp2 = load i8** @sel3, align 8
|
||||
%tmp3 = load i8** @sel4, align 8
|
||||
%tmp4 = load i8** @sel5, align 8
|
||||
%tmp5 = load i8** @sel6, align 8
|
||||
%call = tail call i8* (i8*, i8*, i8*, ...)* @x3(i8* %arg1, i8* %arg2, i8* %tmp2, i8* %tmp3, i8* %tmp4, i8* %tmp5, i32 48879, i32 48879) nounwind optsize noredzone
|
||||
ret i8* %call
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -6,7 +6,7 @@ entry:
|
||||
br i1 undef, label %return, label %if.end.i
|
||||
|
||||
if.end.i: ; preds = %entry
|
||||
%tmp7.i = load i32* undef, align 4, !tbaa !0
|
||||
%tmp7.i = load i32* undef, align 4
|
||||
br i1 undef, label %return, label %if.end
|
||||
|
||||
if.end: ; preds = %if.end.i
|
||||
@ -55,7 +55,3 @@ cond.false280: ; preds = %cond.true225
|
||||
return: ; preds = %if.end.i, %entry
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -49,7 +49,7 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
|
||||
define void @f() nounwind {
|
||||
entry:
|
||||
%call = tail call i32 @g(i32 0, i32 0) nounwind, !dbg !8
|
||||
store i32 %call, i32* @a, align 4, !dbg !8, !tbaa !9
|
||||
store i32 %call, i32* @a, align 4, !dbg !8
|
||||
tail call void @llvm.dbg.value(metadata !12, i64 0, metadata !5), !dbg !13
|
||||
br label %while.body
|
||||
|
||||
@ -63,7 +63,7 @@ while.body: ; preds = %entry, %while.body
|
||||
while.end: ; preds = %while.body
|
||||
tail call void @llvm.dbg.value(metadata !{i32 %mul}, i64 0, metadata !5), !dbg !14
|
||||
%call4 = tail call i32 @g(i32 %mul, i32 0) nounwind, !dbg !15
|
||||
store i32 %call4, i32* @a, align 4, !dbg !15, !tbaa !9
|
||||
store i32 %call4, i32* @a, align 4, !dbg !15
|
||||
tail call void @llvm.dbg.value(metadata !16, i64 0, metadata !5), !dbg !17
|
||||
br label %while.body9
|
||||
|
||||
@ -77,7 +77,7 @@ while.body9: ; preds = %while.end, %while.b
|
||||
while.end13: ; preds = %while.body9
|
||||
tail call void @llvm.dbg.value(metadata !{i32 %mul12}, i64 0, metadata !5), !dbg !18
|
||||
%call15 = tail call i32 @g(i32 0, i32 %mul12) nounwind, !dbg !19
|
||||
store i32 %call15, i32* @a, align 4, !dbg !19, !tbaa !9
|
||||
store i32 %call15, i32* @a, align 4, !dbg !19
|
||||
ret void, !dbg !20
|
||||
}
|
||||
|
||||
@ -96,9 +96,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
|
||||
!6 = metadata !{i32 786443, metadata !1, metadata !0, i32 4, i32 14, i32 0} ; [ DW_TAG_lexical_block ]
|
||||
!7 = metadata !{i32 786468, metadata !2, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
|
||||
!8 = metadata !{i32 6, i32 3, metadata !6, null}
|
||||
!9 = metadata !{metadata !"int", metadata !10}
|
||||
!10 = metadata !{metadata !"omnipotent char", metadata !11}
|
||||
!11 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!12 = metadata !{i32 1}
|
||||
!13 = metadata !{i32 7, i32 3, metadata !6, null}
|
||||
!14 = metadata !{i32 8, i32 3, metadata !6, null}
|
||||
|
@ -21,13 +21,13 @@ define void @_ZN1DC2Ev(%class.D* nocapture %this) unnamed_addr nounwind uwtable
|
||||
entry:
|
||||
tail call void @llvm.dbg.value(metadata !{%class.D* %this}, i64 0, metadata !29), !dbg !36
|
||||
%c1 = getelementptr inbounds %class.D* %this, i64 0, i32 0, !dbg !37
|
||||
store i32 1, i32* %c1, align 4, !dbg !37, !tbaa !39
|
||||
store i32 1, i32* %c1, align 4, !dbg !37
|
||||
%c2 = getelementptr inbounds %class.D* %this, i64 0, i32 1, !dbg !42
|
||||
store i32 2, i32* %c2, align 4, !dbg !42, !tbaa !39
|
||||
store i32 2, i32* %c2, align 4, !dbg !42
|
||||
%c3 = getelementptr inbounds %class.D* %this, i64 0, i32 2, !dbg !43
|
||||
store i32 3, i32* %c3, align 4, !dbg !43, !tbaa !39
|
||||
store i32 3, i32* %c3, align 4, !dbg !43
|
||||
%c4 = getelementptr inbounds %class.D* %this, i64 0, i32 3, !dbg !44
|
||||
store i32 4, i32* %c4, align 4, !dbg !44, !tbaa !39
|
||||
store i32 4, i32* %c4, align 4, !dbg !44
|
||||
ret void, !dbg !45
|
||||
}
|
||||
|
||||
@ -36,21 +36,21 @@ entry:
|
||||
tail call void @llvm.dbg.value(metadata !{%class.D* %this}, i64 0, metadata !34), !dbg !46
|
||||
tail call void @llvm.dbg.value(metadata !{%class.D* %d}, i64 0, metadata !35), !dbg !46
|
||||
%c1 = getelementptr inbounds %class.D* %d, i64 0, i32 0, !dbg !47
|
||||
%0 = load i32* %c1, align 4, !dbg !47, !tbaa !39
|
||||
%0 = load i32* %c1, align 4, !dbg !47
|
||||
%c12 = getelementptr inbounds %class.D* %this, i64 0, i32 0, !dbg !47
|
||||
store i32 %0, i32* %c12, align 4, !dbg !47, !tbaa !39
|
||||
store i32 %0, i32* %c12, align 4, !dbg !47
|
||||
%c2 = getelementptr inbounds %class.D* %d, i64 0, i32 1, !dbg !49
|
||||
%1 = load i32* %c2, align 4, !dbg !49, !tbaa !39
|
||||
%1 = load i32* %c2, align 4, !dbg !49
|
||||
%c23 = getelementptr inbounds %class.D* %this, i64 0, i32 1, !dbg !49
|
||||
store i32 %1, i32* %c23, align 4, !dbg !49, !tbaa !39
|
||||
store i32 %1, i32* %c23, align 4, !dbg !49
|
||||
%c3 = getelementptr inbounds %class.D* %d, i64 0, i32 2, !dbg !50
|
||||
%2 = load i32* %c3, align 4, !dbg !50, !tbaa !39
|
||||
%2 = load i32* %c3, align 4, !dbg !50
|
||||
%c34 = getelementptr inbounds %class.D* %this, i64 0, i32 2, !dbg !50
|
||||
store i32 %2, i32* %c34, align 4, !dbg !50, !tbaa !39
|
||||
store i32 %2, i32* %c34, align 4, !dbg !50
|
||||
%c4 = getelementptr inbounds %class.D* %d, i64 0, i32 3, !dbg !51
|
||||
%3 = load i32* %c4, align 4, !dbg !51, !tbaa !39
|
||||
%3 = load i32* %c4, align 4, !dbg !51
|
||||
%c45 = getelementptr inbounds %class.D* %this, i64 0, i32 3, !dbg !51
|
||||
store i32 %3, i32* %c45, align 4, !dbg !51, !tbaa !39
|
||||
store i32 %3, i32* %c45, align 4, !dbg !51
|
||||
ret void, !dbg !52
|
||||
}
|
||||
|
||||
@ -95,9 +95,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
|
||||
!36 = metadata !{i32 12, i32 0, metadata !5, null}
|
||||
!37 = metadata !{i32 13, i32 0, metadata !38, null}
|
||||
!38 = metadata !{i32 786443, metadata !5, i32 12, i32 0, metadata !6, i32 0} ; [ DW_TAG_lexical_block ] [/usr/local/google/home/echristo/foo.cpp]
|
||||
!39 = metadata !{metadata !"int", metadata !40}
|
||||
!40 = metadata !{metadata !"omnipotent char", metadata !41}
|
||||
!41 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!42 = metadata !{i32 14, i32 0, metadata !38, null}
|
||||
!43 = metadata !{i32 15, i32 0, metadata !38, null}
|
||||
!44 = metadata !{i32 16, i32 0, metadata !38, null}
|
||||
|
@ -43,15 +43,15 @@ entry:
|
||||
tail call void @llvm.dbg.value(metadata !{i32 %add}, i64 0, metadata !27), !dbg !68
|
||||
%idxprom = sext i32 %add to i64, !dbg !69
|
||||
%arrayidx = getelementptr inbounds i32* %Array1Par, i64 %idxprom, !dbg !69
|
||||
store i32 %IntParI2, i32* %arrayidx, align 4, !dbg !69, !tbaa !70
|
||||
store i32 %IntParI2, i32* %arrayidx, align 4, !dbg !69
|
||||
%add3 = add nsw i32 %IntParI1, 6, !dbg !73
|
||||
%idxprom4 = sext i32 %add3 to i64, !dbg !73
|
||||
%arrayidx5 = getelementptr inbounds i32* %Array1Par, i64 %idxprom4, !dbg !73
|
||||
store i32 %IntParI2, i32* %arrayidx5, align 4, !dbg !73, !tbaa !70
|
||||
store i32 %IntParI2, i32* %arrayidx5, align 4, !dbg !73
|
||||
%add6 = add nsw i32 %IntParI1, 35, !dbg !74
|
||||
%idxprom7 = sext i32 %add6 to i64, !dbg !74
|
||||
%arrayidx8 = getelementptr inbounds i32* %Array1Par, i64 %idxprom7, !dbg !74
|
||||
store i32 %add, i32* %arrayidx8, align 4, !dbg !74, !tbaa !70
|
||||
store i32 %add, i32* %arrayidx8, align 4, !dbg !74
|
||||
tail call void @llvm.dbg.value(metadata !{i32 %add}, i64 0, metadata !28), !dbg !75
|
||||
br label %for.body, !dbg !75
|
||||
|
||||
@ -59,7 +59,7 @@ for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %idxprom, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%IntIndex.046 = phi i32 [ %add, %entry ], [ %inc, %for.body ]
|
||||
%arrayidx13 = getelementptr inbounds [51 x i32]* %Array2Par, i64 %idxprom, i64 %indvars.iv, !dbg !77
|
||||
store i32 %add, i32* %arrayidx13, align 4, !dbg !77, !tbaa !70
|
||||
store i32 %add, i32* %arrayidx13, align 4, !dbg !77
|
||||
%inc = add nsw i32 %IntIndex.046, 1, !dbg !75
|
||||
tail call void @llvm.dbg.value(metadata !{i32 %inc}, i64 0, metadata !28), !dbg !75
|
||||
%cmp = icmp sgt i32 %inc, %add3, !dbg !75
|
||||
@ -70,15 +70,15 @@ for.end: ; preds = %for.body
|
||||
%sub = add nsw i32 %IntParI1, 4, !dbg !78
|
||||
%idxprom14 = sext i32 %sub to i64, !dbg !78
|
||||
%arrayidx17 = getelementptr inbounds [51 x i32]* %Array2Par, i64 %idxprom, i64 %idxprom14, !dbg !78
|
||||
%0 = load i32* %arrayidx17, align 4, !dbg !78, !tbaa !70
|
||||
%0 = load i32* %arrayidx17, align 4, !dbg !78
|
||||
%inc18 = add nsw i32 %0, 1, !dbg !78
|
||||
store i32 %inc18, i32* %arrayidx17, align 4, !dbg !78, !tbaa !70
|
||||
%1 = load i32* %arrayidx, align 4, !dbg !79, !tbaa !70
|
||||
store i32 %inc18, i32* %arrayidx17, align 4, !dbg !78
|
||||
%1 = load i32* %arrayidx, align 4, !dbg !79
|
||||
%add22 = add nsw i32 %IntParI1, 25, !dbg !79
|
||||
%idxprom23 = sext i32 %add22 to i64, !dbg !79
|
||||
%arrayidx25 = getelementptr inbounds [51 x i32]* %Array2Par, i64 %idxprom23, i64 %idxprom, !dbg !79
|
||||
store i32 %1, i32* %arrayidx25, align 4, !dbg !79, !tbaa !70
|
||||
store i32 5, i32* @IntGlob, align 4, !dbg !80, !tbaa !70
|
||||
store i32 %1, i32* %arrayidx25, align 4, !dbg !79
|
||||
store i32 5, i32* @IntGlob, align 4, !dbg !80
|
||||
ret void, !dbg !81
|
||||
}
|
||||
|
||||
@ -159,9 +159,6 @@ attributes #1 = { nounwind readnone }
|
||||
!67 = metadata !{i32 184, i32 0, metadata !12, null}
|
||||
!68 = metadata !{i32 189, i32 0, metadata !12, null}
|
||||
!69 = metadata !{i32 190, i32 0, metadata !12, null}
|
||||
!70 = metadata !{metadata !"int", metadata !71}
|
||||
!71 = metadata !{metadata !"omnipotent char", metadata !72}
|
||||
!72 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!73 = metadata !{i32 191, i32 0, metadata !12, null}
|
||||
!74 = metadata !{i32 192, i32 0, metadata !12, null}
|
||||
!75 = metadata !{i32 193, i32 0, metadata !76, null}
|
||||
|
@ -11,17 +11,13 @@ _ZNSt8auto_ptrIiED1Ev.exit:
|
||||
%temp.lvalue = alloca %"class.std::auto_ptr", align 8
|
||||
call void @_Z3barv(%"class.std::auto_ptr"* sret %temp.lvalue)
|
||||
%_M_ptr.i.i = getelementptr inbounds %"class.std::auto_ptr"* %temp.lvalue, i64 0, i32 0
|
||||
%tmp.i.i = load i32** %_M_ptr.i.i, align 8, !tbaa !0
|
||||
%tmp.i.i = load i32** %_M_ptr.i.i, align 8
|
||||
; CHECK-NOT: store i32* null
|
||||
store i32* null, i32** %_M_ptr.i.i, align 8, !tbaa !0
|
||||
store i32* null, i32** %_M_ptr.i.i, align 8
|
||||
%_M_ptr.i.i4 = getelementptr inbounds %"class.std::auto_ptr"* %agg.result, i64 0, i32 0
|
||||
store i32* %tmp.i.i, i32** %_M_ptr.i.i4, align 8, !tbaa !0
|
||||
store i32* %tmp.i.i, i32** %_M_ptr.i.i4, align 8
|
||||
; CHECK: ret void
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @_Z3barv(%"class.std::auto_ptr"* sret)
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -20,10 +20,10 @@ entry:
|
||||
|
||||
define void @fn4() nounwind uwtable ssp {
|
||||
entry:
|
||||
%0 = load i32* @d, align 4, !tbaa !0
|
||||
%0 = load i32* @d, align 4
|
||||
%cmp = icmp eq i32 %0, 0
|
||||
%conv = zext i1 %cmp to i32
|
||||
store i32 %conv, i32* @c, align 4, !tbaa !0
|
||||
store i32 %conv, i32* @c, align 4
|
||||
tail call void @fn3(i32 %conv) nounwind
|
||||
ret void
|
||||
}
|
||||
@ -31,15 +31,15 @@ entry:
|
||||
define void @fn3(i32 %p1) nounwind uwtable ssp {
|
||||
entry:
|
||||
%and = and i32 %p1, 8
|
||||
store i32 %and, i32* @e, align 4, !tbaa !0
|
||||
store i32 %and, i32* @e, align 4
|
||||
%sub = add nsw i32 %and, -1
|
||||
store i32 %sub, i32* @f, align 4, !tbaa !0
|
||||
%0 = load i32* @a, align 4, !tbaa !0
|
||||
store i32 %sub, i32* @f, align 4
|
||||
%0 = load i32* @a, align 4
|
||||
%tobool = icmp eq i32 %0, 0
|
||||
br i1 %tobool, label %if.else, label %if.then
|
||||
|
||||
if.then: ; preds = %entry
|
||||
%1 = load i32* @b, align 4, !tbaa !0
|
||||
%1 = load i32* @b, align 4
|
||||
%.lobit = lshr i32 %1, 31
|
||||
%2 = trunc i32 %.lobit to i8
|
||||
%.not = xor i8 %2, 1
|
||||
@ -55,7 +55,3 @@ if.end: ; preds = %if.else, %if.then
|
||||
store i32 %storemerge, i32* @b, align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -15,7 +15,7 @@ for.cond1177:
|
||||
br i1 %cmp1179, label %for.cond1177, label %land.rhs1320
|
||||
|
||||
land.rhs1320:
|
||||
%tmp1324 = load volatile i64* getelementptr inbounds (%0* @g_338, i64 0, i32 2), align 1, !tbaa !0
|
||||
%tmp1324 = load volatile i64* getelementptr inbounds (%0* @g_338, i64 0, i32 2), align 1
|
||||
br label %if.end.i
|
||||
|
||||
if.end.i:
|
||||
@ -25,7 +25,3 @@ if.end.i:
|
||||
return:
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"long long", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -18,11 +18,11 @@ define i32 @main() nounwind uwtable ssp {
|
||||
entry:
|
||||
%l_2 = alloca [1 x i32], align 4
|
||||
%arrayidx = getelementptr inbounds [1 x i32]* %l_2, i64 0, i64 0
|
||||
store i32 0, i32* %arrayidx, align 4, !tbaa !0
|
||||
%tmp = load i32* @g_3, align 4, !tbaa !0
|
||||
store i32 0, i32* %arrayidx, align 4
|
||||
%tmp = load i32* @g_3, align 4
|
||||
%idxprom = sext i32 %tmp to i64
|
||||
%arrayidx1 = getelementptr inbounds [1 x i32]* %l_2, i64 0, i64 %idxprom
|
||||
%tmp1 = load i32* %arrayidx1, align 4, !tbaa !0
|
||||
%tmp1 = load i32* %arrayidx1, align 4
|
||||
%conv.i.i = and i32 %tmp1, 65535
|
||||
%tobool.i.i.i = icmp ne i32 %tmp, 0
|
||||
br label %codeRepl
|
||||
@ -48,7 +48,7 @@ for.cond.i.i.us: ; preds = %for.inc.i.i.us, %co
|
||||
|
||||
for.inc.i.i.us: ; preds = %for.body.i.i.us
|
||||
%add.i.i.us = add nsw i32 %tmp2, 1
|
||||
store i32 %add.i.i.us, i32* @g_752, align 4, !tbaa !0
|
||||
store i32 %add.i.i.us, i32* @g_752, align 4
|
||||
br label %for.cond.i.i.us
|
||||
|
||||
for.body.i.i.us: ; preds = %codeRepl5.us
|
||||
@ -78,13 +78,9 @@ for.body.i.i: ; preds = %codeRepl5
|
||||
|
||||
for.inc.i.i: ; preds = %for.body.i.i
|
||||
%add.i.i = add nsw i32 %tmp3, 1
|
||||
store i32 %add.i.i, i32* @g_752, align 4, !tbaa !0
|
||||
store i32 %add.i.i, i32* @g_752, align 4
|
||||
br label %for.cond.i.i
|
||||
|
||||
func_4.exit: ; No predecessors!
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -24,7 +24,7 @@ if.then: ; preds = %for.body
|
||||
%idxprom = sext i32 %inc1 to i64
|
||||
%array_ = getelementptr inbounds %class.MyContainer.1.3.19.29* %this, i32 0, i32 0
|
||||
%arrayidx = getelementptr inbounds [6 x %class.MyMemVarClass.0.2.18.28*]* %array_, i32 0, i64 %idxprom
|
||||
%tmp4 = load %class.MyMemVarClass.0.2.18.28** %arrayidx, align 8, !tbaa !0
|
||||
%tmp4 = load %class.MyMemVarClass.0.2.18.28** %arrayidx, align 8
|
||||
%isnull = icmp eq %class.MyMemVarClass.0.2.18.28* %tmp4, null
|
||||
br i1 %isnull, label %for.inc, label %delete.notnull
|
||||
|
||||
@ -61,7 +61,3 @@ declare void @_ZN13MyMemVarClassD1Ev(%class.MyMemVarClass.0.2.18.28*)
|
||||
declare i32 @__gxx_personality_v0(...)
|
||||
|
||||
declare void @_ZdlPv(i8*) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -45,10 +45,10 @@ for.end: ; preds = %invoke.cont6
|
||||
define void @_ZN1DptEv(%class.D.22.42.66.102.138.158.178.198.238.242.246.250.262.294.302.338.346.379* %this) uwtable ssp align 2 {
|
||||
entry:
|
||||
%this.addr = alloca %class.D.22.42.66.102.138.158.178.198.238.242.246.250.262.294.302.338.346.379*, align 8
|
||||
store %class.D.22.42.66.102.138.158.178.198.238.242.246.250.262.294.302.338.346.379* %this, %class.D.22.42.66.102.138.158.178.198.238.242.246.250.262.294.302.338.346.379** %this.addr, align 8, !tbaa !0
|
||||
store %class.D.22.42.66.102.138.158.178.198.238.242.246.250.262.294.302.338.346.379* %this, %class.D.22.42.66.102.138.158.178.198.238.242.246.250.262.294.302.338.346.379** %this.addr, align 8
|
||||
%this1 = load %class.D.22.42.66.102.138.158.178.198.238.242.246.250.262.294.302.338.346.379** %this.addr
|
||||
%px = getelementptr inbounds %class.D.22.42.66.102.138.158.178.198.238.242.246.250.262.294.302.338.346.379* %this1, i32 0, i32 0
|
||||
%0 = load %class.C.23.43.67.103.139.159.179.199.239.243.247.251.263.295.303.339.347.376** %px, align 8, !tbaa !0
|
||||
%0 = load %class.C.23.43.67.103.139.159.179.199.239.243.247.251.263.295.303.339.347.376** %px, align 8
|
||||
%tobool = icmp ne %class.C.23.43.67.103.139.159.179.199.239.243.247.251.263.295.303.339.347.376* %0, null
|
||||
br i1 %tobool, label %cond.end, label %cond.false
|
||||
|
||||
@ -95,7 +95,3 @@ entry:
|
||||
}
|
||||
|
||||
declare void @_Z10__assert13v() noreturn
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
|
@ -15,7 +15,7 @@ entry:
|
||||
for.body: ; preds = %entry, %if.end
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %if.end ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds i32* %A, i64 %indvars.iv
|
||||
%0 = load i32* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load i32* %arrayidx, align 4
|
||||
%tobool = icmp eq i32 %0, 0
|
||||
br i1 %tobool, label %if.end, label %if.then
|
||||
|
||||
@ -29,7 +29,7 @@ if.then: ; preds = %for.body
|
||||
|
||||
if.end: ; preds = %for.body, %if.then
|
||||
%z.0 = phi i32 [ %add1, %if.then ], [ 9, %for.body ]
|
||||
store i32 %z.0, i32* %arrayidx, align 4, !tbaa !0
|
||||
store i32 %z.0, i32* %arrayidx, 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, %x
|
||||
@ -38,7 +38,3 @@ if.end: ; preds = %for.body, %if.then
|
||||
for.end: ; preds = %if.end, %entry
|
||||
ret i32 undef
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -15,9 +15,9 @@ entry:
|
||||
|
||||
for.end.us: ; preds = %for.body3.us
|
||||
%arrayidx9.us = getelementptr inbounds i32* %b, i64 %indvars.iv33
|
||||
%0 = load i32* %arrayidx9.us, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
%0 = load i32* %arrayidx9.us, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%add10.us = add nsw i32 %0, 3
|
||||
store i32 %add10.us, i32* %arrayidx9.us, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
store i32 %add10.us, i32* %arrayidx9.us, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%indvars.iv.next34 = add i64 %indvars.iv33, 1
|
||||
%lftr.wideiv35 = trunc i64 %indvars.iv.next34 to i32
|
||||
%exitcond36 = icmp eq i32 %lftr.wideiv35, %m
|
||||
@ -29,9 +29,9 @@ for.body3.us: ; preds = %for.body3.us, %for.
|
||||
%add4.us = add i32 %add.us, %1
|
||||
%idxprom.us = sext i32 %add4.us to i64
|
||||
%arrayidx.us = getelementptr inbounds i32* %a, i64 %idxprom.us
|
||||
%2 = load i32* %arrayidx.us, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
%2 = load i32* %arrayidx.us, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%add5.us = add nsw i32 %2, 1
|
||||
store i32 %add5.us, i32* %arrayidx7.us, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
store i32 %add5.us, i32* %arrayidx7.us, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%indvars.iv.next30 = add i64 %indvars.iv29, 1
|
||||
%lftr.wideiv31 = trunc i64 %indvars.iv.next30 to i32
|
||||
%exitcond32 = icmp eq i32 %lftr.wideiv31, %m
|
||||
@ -50,9 +50,6 @@ for.end15: ; preds = %for.end.us, %entry
|
||||
|
||||
attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!3 = metadata !{metadata !4, metadata !5}
|
||||
!4 = metadata !{metadata !4}
|
||||
!5 = metadata !{metadata !5}
|
||||
|
@ -11,9 +11,9 @@ entry:
|
||||
for.body: ; preds = %for.body, %entry
|
||||
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%arrayidx = getelementptr inbounds float* %a, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%add = fadd float %0, 1.000000e+00
|
||||
store float %add, float* %arrayidx, align 4, !tbaa !0
|
||||
store float %add, float* %arrayidx, 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, 8
|
||||
@ -22,7 +22,3 @@ for.body: ; preds = %for.body, %entry
|
||||
for.end: ; preds = %for.body
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"float", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -19,19 +19,19 @@ entry:
|
||||
for.body: ; preds = %for.body.for.body_crit_edge, %entry
|
||||
%indvars.iv.reload = load i64* %indvars.iv.reg2mem
|
||||
%arrayidx = getelementptr inbounds i32* %b, i64 %indvars.iv.reload
|
||||
%0 = load i32* %arrayidx, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
%0 = load i32* %arrayidx, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%arrayidx2 = getelementptr inbounds i32* %a, i64 %indvars.iv.reload
|
||||
%1 = load i32* %arrayidx2, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
%1 = load i32* %arrayidx2, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%idxprom3 = sext i32 %1 to i64
|
||||
%arrayidx4 = getelementptr inbounds i32* %a, i64 %idxprom3
|
||||
store i32 %0, i32* %arrayidx4, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
store i32 %0, i32* %arrayidx4, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%indvars.iv.next = add i64 %indvars.iv.reload, 1
|
||||
; A new store without the parallel metadata here:
|
||||
store i64 %indvars.iv.next, i64* %indvars.iv.next.reg2mem
|
||||
%indvars.iv.next.reload1 = load i64* %indvars.iv.next.reg2mem
|
||||
%arrayidx6 = getelementptr inbounds i32* %b, i64 %indvars.iv.next.reload1
|
||||
%2 = load i32* %arrayidx6, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
store i32 %2, i32* %arrayidx2, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
%2 = load i32* %arrayidx6, align 4, !llvm.mem.parallel_loop_access !3
|
||||
store i32 %2, i32* %arrayidx2, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%indvars.iv.next.reload = load i64* %indvars.iv.next.reg2mem
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next.reload to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, 512
|
||||
@ -46,7 +46,4 @@ for.end: ; preds = %for.body
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!3 = metadata !{metadata !3}
|
||||
|
@ -21,16 +21,16 @@ entry:
|
||||
for.body: ; preds = %for.body, %entry
|
||||
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%arrayidx = getelementptr inbounds i32* %b, i64 %indvars.iv
|
||||
%0 = load i32* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load i32* %arrayidx, align 4
|
||||
%arrayidx2 = getelementptr inbounds i32* %a, i64 %indvars.iv
|
||||
%1 = load i32* %arrayidx2, align 4, !tbaa !0
|
||||
%1 = load i32* %arrayidx2, align 4
|
||||
%idxprom3 = sext i32 %1 to i64
|
||||
%arrayidx4 = getelementptr inbounds i32* %a, i64 %idxprom3
|
||||
store i32 %0, i32* %arrayidx4, align 4, !tbaa !0
|
||||
store i32 %0, i32* %arrayidx4, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%arrayidx6 = getelementptr inbounds i32* %b, i64 %indvars.iv.next
|
||||
%2 = load i32* %arrayidx6, align 4, !tbaa !0
|
||||
store i32 %2, i32* %arrayidx2, align 4, !tbaa !0
|
||||
%2 = load i32* %arrayidx6, align 4
|
||||
store i32 %2, i32* %arrayidx2, align 4
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, 512
|
||||
br i1 %exitcond, label %for.end, label %for.body
|
||||
@ -51,18 +51,18 @@ entry:
|
||||
for.body: ; preds = %for.body, %entry
|
||||
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%arrayidx = getelementptr inbounds i32* %b, i64 %indvars.iv
|
||||
%0 = load i32* %arrayidx, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
%0 = load i32* %arrayidx, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%arrayidx2 = getelementptr inbounds i32* %a, i64 %indvars.iv
|
||||
%1 = load i32* %arrayidx2, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
%1 = load i32* %arrayidx2, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%idxprom3 = sext i32 %1 to i64
|
||||
%arrayidx4 = getelementptr inbounds i32* %a, i64 %idxprom3
|
||||
; This store might have originated from inlining a function with a parallel
|
||||
; loop. Refers to a list with the "original loop reference" (!4) also included.
|
||||
store i32 %0, i32* %arrayidx4, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !5
|
||||
store i32 %0, i32* %arrayidx4, align 4, !llvm.mem.parallel_loop_access !5
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%arrayidx6 = getelementptr inbounds i32* %b, i64 %indvars.iv.next
|
||||
%2 = load i32* %arrayidx6, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
store i32 %2, i32* %arrayidx2, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !3
|
||||
%2 = load i32* %arrayidx6, align 4, !llvm.mem.parallel_loop_access !3
|
||||
store i32 %2, i32* %arrayidx2, align 4, !llvm.mem.parallel_loop_access !3
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, 512
|
||||
br i1 %exitcond, label %for.end, label %for.body, !llvm.loop.parallel !3
|
||||
@ -84,18 +84,18 @@ entry:
|
||||
for.body: ; preds = %for.body, %entry
|
||||
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%arrayidx = getelementptr inbounds i32* %b, i64 %indvars.iv
|
||||
%0 = load i32* %arrayidx, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !6
|
||||
%0 = load i32* %arrayidx, align 4, !llvm.mem.parallel_loop_access !6
|
||||
%arrayidx2 = getelementptr inbounds i32* %a, i64 %indvars.iv
|
||||
%1 = load i32* %arrayidx2, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !6
|
||||
%1 = load i32* %arrayidx2, align 4, !llvm.mem.parallel_loop_access !6
|
||||
%idxprom3 = sext i32 %1 to i64
|
||||
%arrayidx4 = getelementptr inbounds i32* %a, i64 %idxprom3
|
||||
; This refers to the loop marked with !7 which we are not in at the moment.
|
||||
; It should prevent detecting as a parallel loop.
|
||||
store i32 %0, i32* %arrayidx4, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !7
|
||||
store i32 %0, i32* %arrayidx4, align 4, !llvm.mem.parallel_loop_access !7
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%arrayidx6 = getelementptr inbounds i32* %b, i64 %indvars.iv.next
|
||||
%2 = load i32* %arrayidx6, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !6
|
||||
store i32 %2, i32* %arrayidx2, align 4, !tbaa !0, !llvm.mem.parallel_loop_access !6
|
||||
%2 = load i32* %arrayidx6, align 4, !llvm.mem.parallel_loop_access !6
|
||||
store i32 %2, i32* %arrayidx2, align 4, !llvm.mem.parallel_loop_access !6
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
%exitcond = icmp eq i32 %lftr.wideiv, 512
|
||||
br i1 %exitcond, label %for.end, label %for.body, !llvm.loop.parallel !6
|
||||
@ -104,9 +104,6 @@ for.end: ; preds = %for.body
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!3 = metadata !{metadata !3}
|
||||
!4 = metadata !{metadata !4}
|
||||
!5 = metadata !{metadata !3, metadata !4}
|
||||
|
@ -23,7 +23,7 @@ for.body: ; preds = %for.body, %for.body
|
||||
%i.030 = phi i64 [ 0, %for.body.lr.ph ], [ %inc, %for.body ]
|
||||
%shr = lshr i64 %i.030, 1
|
||||
%arrayidx = getelementptr inbounds i8* %bytes, i64 %shr
|
||||
%1 = load i8* %arrayidx, align 1, !tbaa !0
|
||||
%1 = load i8* %arrayidx, align 1
|
||||
%conv = zext i8 %1 to i32
|
||||
%and = shl i64 %i.030, 2
|
||||
%neg = and i64 %and, 4
|
||||
@ -38,7 +38,7 @@ for.body: ; preds = %for.body, %for.body
|
||||
%add17 = add nsw i32 %cond, %shr11
|
||||
%conv18 = trunc i32 %add17 to i8
|
||||
%arrayidx19 = getelementptr inbounds i8* %call, i64 %i.030
|
||||
store i8 %conv18, i8* %arrayidx19, align 1, !tbaa !0
|
||||
store i8 %conv18, i8* %arrayidx19, align 1
|
||||
%inc = add i64 %i.030, 1
|
||||
%exitcond = icmp eq i64 %inc, %0
|
||||
br i1 %exitcond, label %for.end, label %for.body
|
||||
@ -48,6 +48,3 @@ for.end: ; preds = %for.body, %entry
|
||||
}
|
||||
|
||||
declare noalias i8* @calloc(i64, i64) nounwind
|
||||
|
||||
!0 = metadata !{metadata !"omnipotent char", metadata !1}
|
||||
!1 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -18,12 +18,12 @@ for.body:
|
||||
;CHECK: load <4 x i32>
|
||||
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%arrayidx = getelementptr inbounds [1024 x i32]* @B, i64 0, i64 %indvars.iv, !dbg !19
|
||||
%0 = load i32* %arrayidx, align 4, !dbg !19, !tbaa !21
|
||||
%0 = load i32* %arrayidx, align 4, !dbg !19
|
||||
%arrayidx2 = getelementptr inbounds [1024 x i32]* @C, i64 0, i64 %indvars.iv, !dbg !19
|
||||
%1 = load i32* %arrayidx2, align 4, !dbg !19, !tbaa !21
|
||||
%1 = load i32* %arrayidx2, align 4, !dbg !19
|
||||
%add = add nsw i32 %1, %0, !dbg !19
|
||||
%arrayidx4 = getelementptr inbounds [1024 x i32]* @A, i64 0, i64 %indvars.iv, !dbg !19
|
||||
store i32 %add, i32* %arrayidx4, align 4, !dbg !19, !tbaa !21
|
||||
store i32 %add, i32* %arrayidx4, align 4, !dbg !19
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1, !dbg !18
|
||||
tail call void @llvm.dbg.value(metadata !{null}, i64 0, metadata !9), !dbg !18
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32, !dbg !18
|
||||
@ -64,7 +64,4 @@ attributes #1 = { nounwind readnone }
|
||||
!18 = metadata !{i32 6, i32 0, metadata !10, null}
|
||||
!19 = metadata !{i32 7, i32 0, metadata !20, null}
|
||||
!20 = metadata !{i32 786443, metadata !10, i32 6, i32 0, metadata !4, i32 1}
|
||||
!21 = metadata !{metadata !"int", metadata !22}
|
||||
!22 = metadata !{metadata !"omnipotent char", metadata !23}
|
||||
!23 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!24 = metadata !{i32 9, i32 0, metadata !3, null}
|
||||
|
@ -13,7 +13,7 @@ for.body: ; preds = %for.body, %entry
|
||||
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
|
||||
%sum.04 = phi float [ 0.000000e+00, %entry ], [ %add, %for.body ]
|
||||
%arrayidx = getelementptr inbounds float* %A, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%add = fadd fast float %sum.04, %0
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
@ -23,7 +23,3 @@ for.body: ; preds = %for.body, %entry
|
||||
for.end: ; preds = %for.body
|
||||
ret float %add
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"float", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -8,8 +8,8 @@ target triple = "x86_64-apple-macosx10.8.0"
|
||||
|
||||
define void @f() nounwind uwtable ssp {
|
||||
scalar.ph:
|
||||
store i8 0, i8* inttoptr (i64 1 to i8*), align 1, !tbaa !0
|
||||
%0 = load i8* @a, align 1, !tbaa !0
|
||||
store i8 0, i8* inttoptr (i64 1 to i8*), align 1
|
||||
%0 = load i8* @a, align 1
|
||||
br label %for.body
|
||||
|
||||
for.body:
|
||||
@ -26,10 +26,6 @@ for.body:
|
||||
br i1 %phitmp14, label %for.body, label %for.end
|
||||
|
||||
for.end: ; preds = %for.body
|
||||
store i8 %mul, i8* @b, align 1, !tbaa !0
|
||||
store i8 %mul, i8* @b, align 1
|
||||
ret void
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"omnipotent char", metadata !1}
|
||||
!1 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
||||
|
@ -22,10 +22,10 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds float* %b, i64 %indvars.iv
|
||||
%0 = load float* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load float* %arrayidx, align 4
|
||||
%mul = fmul float %0, 3.000000e+00
|
||||
%arrayidx2 = getelementptr inbounds float* %a, i64 %indvars.iv
|
||||
store float %mul, float* %arrayidx2, align 4, !tbaa !0
|
||||
store float %mul, 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
|
||||
@ -34,7 +34,3 @@ for.body: ; preds = %entry, %for.body
|
||||
for.end: ; preds = %for.body, %entry
|
||||
ret i32 undef
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"float", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -18,9 +18,9 @@ for.body.lr.ph: ; preds = %entry
|
||||
for.body: ; preds = %for.body.lr.ph, %for.body
|
||||
%indvars.iv = phi i64 [ %0, %for.body.lr.ph ], [ %indvars.iv.next, %for.body ]
|
||||
%arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv
|
||||
%1 = load i32* %arrayidx, align 4, !tbaa !0
|
||||
%1 = load i32* %arrayidx, align 4
|
||||
%mul = mul nuw i32 %1, 333
|
||||
store i32 %mul, i32* %arrayidx, align 4, !tbaa !0
|
||||
store i32 %mul, i32* %arrayidx, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%2 = trunc i64 %indvars.iv.next to i32
|
||||
%cmp = icmp slt i32 %2, %end
|
||||
@ -29,7 +29,3 @@ for.body: ; preds = %for.body.lr.ph, %fo
|
||||
for.end: ; preds = %for.body, %entry
|
||||
ret i32 4
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -33,7 +33,7 @@ for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%sum.05 = phi i32 [ %add, %for.body ], [ 0, %entry ]
|
||||
%x = getelementptr inbounds %struct.coordinate* %A, i64 %indvars.iv, i32 0
|
||||
%0 = load i32* %x, align 4, !tbaa !0
|
||||
%0 = load i32* %x, align 4
|
||||
%add = add nsw i32 %0, %sum.05
|
||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
|
||||
@ -44,7 +44,3 @@ for.end: ; preds = %for.body, %entry
|
||||
%sum.0.lcssa = phi i32 [ 0, %entry ], [ %add, %for.body ]
|
||||
ret i32 %sum.0.lcssa
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -29,7 +29,7 @@ entry:
|
||||
for.body.i: ; preds = %entry, %for.body.i
|
||||
%__init.addr.05.i = phi i32 [ %add.i, %for.body.i ], [ 0, %entry ]
|
||||
%__first.addr.04.i = phi i32* [ %incdec.ptr.i, %for.body.i ], [ %A, %entry ]
|
||||
%0 = load i32* %__first.addr.04.i, align 4, !tbaa !0
|
||||
%0 = load i32* %__first.addr.04.i, align 4
|
||||
%add.i = add nsw i32 %0, %__init.addr.05.i
|
||||
%incdec.ptr.i = getelementptr inbounds i32* %__first.addr.04.i, i64 1
|
||||
%cmp.i = icmp eq i32* %incdec.ptr.i, %add.ptr
|
||||
@ -55,7 +55,7 @@ entry:
|
||||
for.body.i: ; preds = %entry, %for.body.i
|
||||
%__init.addr.05.i = phi i32 [ %add.i, %for.body.i ], [ 0, %entry ]
|
||||
%__first.addr.04.i = phi i32* [ %incdec.ptr.i, %for.body.i ], [ %A, %entry ]
|
||||
%0 = load i32* %__first.addr.04.i, align 4, !tbaa !0
|
||||
%0 = load i32* %__first.addr.04.i, align 4
|
||||
%add.i = add nsw i32 %0, %__init.addr.05.i
|
||||
%incdec.ptr.i = getelementptr inbounds i32* %__first.addr.04.i, i64 1
|
||||
%cmp.i = icmp eq i32* %incdec.ptr.i, %add.ptr
|
||||
@ -68,8 +68,5 @@ _ZSt10accumulateIPiiET0_T_S2_S1_.exit: ; preds = %for.body.i, %entry
|
||||
|
||||
attributes #0 = { nounwind readonly ssp uwtable "fp-contract-model"="standard" "no-frame-pointer-elim" "no-frame-pointer-elim-non-leaf" "realign-stack" "relocation-model"="pic" "ssp-buffers-size"="8" }
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
!3 = metadata !{}
|
||||
|
||||
|
@ -22,7 +22,7 @@ target triple = "x86_64-unknown-linux-gnu"
|
||||
define linkonce_odr void @_ZNSt6vectorIlSaIlEED1Ev(%"class.std::vector"* nocapture %this) unnamed_addr align 2 {
|
||||
entry:
|
||||
%tmp2.i.i = bitcast %"class.std::vector"* %this to i64**
|
||||
%tmp3.i.i = load i64** %tmp2.i.i, align 8, !tbaa !0
|
||||
%tmp3.i.i = load i64** %tmp2.i.i, align 8
|
||||
%tobool.i.i.i = icmp eq i64* %tmp3.i.i, null
|
||||
br i1 %tobool.i.i.i, label %_ZNSt6vectorIlSaIlEED2Ev.exit, label %if.then.i.i.i
|
||||
|
||||
@ -40,7 +40,7 @@ declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*)
|
||||
define linkonce_odr void @_ZNSt6vectorIPvSaIS0_EED1Ev(%"class.std::vector"* nocapture %this) unnamed_addr align 2 {
|
||||
entry:
|
||||
%tmp2.i.i = bitcast %"class.std::vector"* %this to i8***
|
||||
%tmp3.i.i = load i8*** %tmp2.i.i, align 8, !tbaa !0
|
||||
%tmp3.i.i = load i8*** %tmp2.i.i, align 8
|
||||
%tobool.i.i.i = icmp eq i8** %tmp3.i.i, null
|
||||
br i1 %tobool.i.i.i, label %_ZNSt6vectorIPvSaIS0_EED2Ev.exit, label %if.then.i.i.i
|
||||
|
||||
@ -70,8 +70,3 @@ declare void @_ZNSt6vectorIlSaIlEE13_M_insert_auxEN9__gnu_cxx17__normal_iterator
|
||||
declare void @_GLOBAL__I_a()
|
||||
|
||||
declare %1 @llvm.uadd.with.overflow.i64(i64, i64) nounwind readnone
|
||||
|
||||
!0 = metadata !{metadata !"any pointer", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA", null}
|
||||
!3 = metadata !{metadata !"long", metadata !1}
|
||||
|
@ -6,36 +6,36 @@
|
||||
|
||||
define i32 @fn2() nounwind uwtable ssp {
|
||||
entry:
|
||||
%0 = load i32* @a, align 4, !tbaa !0
|
||||
%0 = load i32* @a, align 4
|
||||
%dec = add nsw i32 %0, -1
|
||||
store i32 %dec, i32* @a, align 4, !tbaa !0
|
||||
%1 = load i32* @d, align 4, !tbaa !0
|
||||
store i32 %dec, i32* @a, align 4
|
||||
%1 = load i32* @d, align 4
|
||||
%sub = sub nsw i32 %dec, %1
|
||||
store i32 %sub, i32* @d, align 4, !tbaa !0
|
||||
%2 = load i32* @a, align 4, !tbaa !0
|
||||
store i32 %sub, i32* @d, align 4
|
||||
%2 = load i32* @a, align 4
|
||||
%dec1 = add nsw i32 %2, -1
|
||||
store i32 %dec1, i32* @a, align 4, !tbaa !0
|
||||
%3 = load i32* @d, align 4, !tbaa !0
|
||||
store i32 %dec1, i32* @a, align 4
|
||||
%3 = load i32* @d, align 4
|
||||
%sub2 = sub nsw i32 %dec1, %3
|
||||
store i32 %sub2, i32* @d, align 4, !tbaa !0
|
||||
%4 = load i32* @a, align 4, !tbaa !0
|
||||
store i32 %sub2, i32* @d, align 4
|
||||
%4 = load i32* @a, align 4
|
||||
%dec3 = add nsw i32 %4, -1
|
||||
store i32 %dec3, i32* @a, align 4, !tbaa !0
|
||||
%5 = load i32* @d, align 4, !tbaa !0
|
||||
store i32 %dec3, i32* @a, align 4
|
||||
%5 = load i32* @d, align 4
|
||||
%sub4 = sub nsw i32 %dec3, %5
|
||||
store i32 %sub4, i32* @d, align 4, !tbaa !0
|
||||
%6 = load i32* @a, align 4, !tbaa !0
|
||||
store i32 %sub4, i32* @d, align 4
|
||||
%6 = load i32* @a, align 4
|
||||
%dec5 = add nsw i32 %6, -1
|
||||
store i32 %dec5, i32* @a, align 4, !tbaa !0
|
||||
%7 = load i32* @d, align 4, !tbaa !0
|
||||
store i32 %dec5, i32* @a, align 4
|
||||
%7 = load i32* @d, align 4
|
||||
%sub6 = sub nsw i32 %dec5, %7
|
||||
store i32 %sub6, i32* @d, align 4, !tbaa !0
|
||||
%8 = load i32* @a, align 4, !tbaa !0
|
||||
store i32 %sub6, i32* @d, align 4
|
||||
%8 = load i32* @a, align 4
|
||||
%dec7 = add nsw i32 %8, -1
|
||||
store i32 %dec7, i32* @a, align 4, !tbaa !0
|
||||
%9 = load i32* @d, align 4, !tbaa !0
|
||||
store i32 %dec7, i32* @a, align 4
|
||||
%9 = load i32* @d, align 4
|
||||
%sub8 = sub nsw i32 %dec7, %9
|
||||
store i32 %sub8, i32* @d, align 4, !tbaa !0
|
||||
store i32 %sub8, i32* @d, align 4
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
@ -44,7 +44,3 @@ entry:
|
||||
%call = call i32 @fn2()
|
||||
ret i32 %call
|
||||
}
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
@ -19,44 +19,44 @@ entry:
|
||||
for.body: ; preds = %entry, %for.body
|
||||
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
|
||||
%arrayidx = getelementptr inbounds i32* %A, i64 %indvars.iv
|
||||
%0 = load i32* %arrayidx, align 4, !tbaa !0
|
||||
%0 = load i32* %arrayidx, align 4
|
||||
%add1 = add nsw i32 %0, %n
|
||||
store i32 %add1, i32* %arrayidx, align 4, !tbaa !0
|
||||
store i32 %add1, i32* %arrayidx, align 4
|
||||
%1 = or i64 %indvars.iv, 1
|
||||
%arrayidx4 = getelementptr inbounds i32* %A, i64 %1
|
||||
%2 = load i32* %arrayidx4, align 4, !tbaa !0
|
||||
%2 = load i32* %arrayidx4, align 4
|
||||
%add5 = add nsw i32 %2, %n
|
||||
store i32 %add5, i32* %arrayidx4, align 4, !tbaa !0
|
||||
store i32 %add5, i32* %arrayidx4, align 4
|
||||
%3 = or i64 %indvars.iv, 2
|
||||
%arrayidx8 = getelementptr inbounds i32* %A, i64 %3
|
||||
%4 = load i32* %arrayidx8, align 4, !tbaa !0
|
||||
%4 = load i32* %arrayidx8, align 4
|
||||
%add9 = add nsw i32 %4, %n
|
||||
store i32 %add9, i32* %arrayidx8, align 4, !tbaa !0
|
||||
store i32 %add9, i32* %arrayidx8, align 4
|
||||
%5 = or i64 %indvars.iv, 3
|
||||
%arrayidx12 = getelementptr inbounds i32* %A, i64 %5
|
||||
%6 = load i32* %arrayidx12, align 4, !tbaa !0
|
||||
%6 = load i32* %arrayidx12, align 4
|
||||
%add13 = add nsw i32 %6, %n
|
||||
store i32 %add13, i32* %arrayidx12, align 4, !tbaa !0
|
||||
store i32 %add13, i32* %arrayidx12, align 4
|
||||
%7 = or i64 %indvars.iv, 4
|
||||
%arrayidx16 = getelementptr inbounds i32* %A, i64 %7
|
||||
%8 = load i32* %arrayidx16, align 4, !tbaa !0
|
||||
%8 = load i32* %arrayidx16, align 4
|
||||
%add17 = add nsw i32 %8, %n
|
||||
store i32 %add17, i32* %arrayidx16, align 4, !tbaa !0
|
||||
store i32 %add17, i32* %arrayidx16, align 4
|
||||
%9 = or i64 %indvars.iv, 5
|
||||
%arrayidx20 = getelementptr inbounds i32* %A, i64 %9
|
||||
%10 = load i32* %arrayidx20, align 4, !tbaa !0
|
||||
%10 = load i32* %arrayidx20, align 4
|
||||
%add21 = add nsw i32 %10, %n
|
||||
store i32 %add21, i32* %arrayidx20, align 4, !tbaa !0
|
||||
store i32 %add21, i32* %arrayidx20, align 4
|
||||
%11 = or i64 %indvars.iv, 6
|
||||
%arrayidx24 = getelementptr inbounds i32* %A, i64 %11
|
||||
%12 = load i32* %arrayidx24, align 4, !tbaa !0
|
||||
%12 = load i32* %arrayidx24, align 4
|
||||
%add25 = add nsw i32 %12, %n
|
||||
store i32 %add25, i32* %arrayidx24, align 4, !tbaa !0
|
||||
store i32 %add25, i32* %arrayidx24, align 4
|
||||
%13 = or i64 %indvars.iv, 7
|
||||
%arrayidx28 = getelementptr inbounds i32* %A, i64 %13
|
||||
%14 = load i32* %arrayidx28, align 4, !tbaa !0
|
||||
%14 = load i32* %arrayidx28, align 4
|
||||
%add29 = add nsw i32 %14, %n
|
||||
store i32 %add29, i32* %arrayidx28, align 4, !tbaa !0
|
||||
store i32 %add29, i32* %arrayidx28, align 4
|
||||
%indvars.iv.next = add i64 %indvars.iv, 8
|
||||
%15 = trunc i64 %indvars.iv.next to i32
|
||||
%cmp = icmp slt i32 %15, %n
|
||||
@ -67,7 +67,3 @@ for.end: ; preds = %for.body, %entry
|
||||
}
|
||||
|
||||
attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
||||
|
||||
!0 = metadata !{metadata !"int", metadata !1}
|
||||
!1 = metadata !{metadata !"omnipotent char", metadata !2}
|
||||
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
|
||||
|
Loading…
Reference in New Issue
Block a user