mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-04-02 15:51:54 +00:00
[opaque pointer type] Add textual IR support for explicit type parameter to gep operator
Similar to gep (r230786) and load (r230794) changes. Similar migration script can be used to update test cases, which successfully migrated all of LLVM and Polly, but about 4 test cases needed manually changes in Clang. (this script will read the contents of stdin and massage it into stdout - wrap it in the 'apply.sh' script shown in previous commits + xargs to apply it over a large set of test cases) import fileinput import sys import re rep = re.compile(r"(getelementptr(?:\s+inbounds)?\s*\()((<\d*\s+x\s+)?([^@]*?)(|\s*addrspace\(\d+\))\s*\*(?(3)>)\s*)(?=$|%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|zeroinitializer|<|\[\[[a-zA-Z]|\{\{)", re.MULTILINE | re.DOTALL) def conv(match): line = match.group(1) line += match.group(4) line += ", " line += match.group(2) return line line = sys.stdin.read() off = 0 for match in re.finditer(rep, line): sys.stdout.write(line[off:match.start()]) sys.stdout.write(conv(match)) off = match.end() sys.stdout.write(line[off:]) llvm-svn: 232184
This commit is contained in:
parent
b55ba922b2
commit
3ea2df7c7b
@ -2707,11 +2707,11 @@ The following is the syntax for constant expressions:
|
||||
Convert a constant pointer or constant vector of pointer, CST, to another
|
||||
TYPE in a different address space. The constraints of the operands are the
|
||||
same as those for the :ref:`addrspacecast instruction <i_addrspacecast>`.
|
||||
``getelementptr (CSTPTR, IDX0, IDX1, ...)``, ``getelementptr inbounds (CSTPTR, IDX0, IDX1, ...)``
|
||||
``getelementptr (TY, CSTPTR, IDX0, IDX1, ...)``, ``getelementptr inbounds (TY, CSTPTR, IDX0, IDX1, ...)``
|
||||
Perform the :ref:`getelementptr operation <i_getelementptr>` on
|
||||
constants. As with the :ref:`getelementptr <i_getelementptr>`
|
||||
instruction, the index list may have zero or more indexes, which are
|
||||
required to make sense for the type of "CSTPTR".
|
||||
required to make sense for the type of "pointer to TY".
|
||||
``select (COND, VAL1, VAL2)``
|
||||
Perform the :ref:`select operation <i_select>` on constants.
|
||||
``icmp COND (VAL1, VAL2)``
|
||||
|
@ -2777,11 +2777,23 @@ bool LLParser::ParseValID(ValID &ID, PerFunctionState *PFS) {
|
||||
unsigned Opc = Lex.getUIntVal();
|
||||
SmallVector<Constant*, 16> Elts;
|
||||
bool InBounds = false;
|
||||
Type *Ty;
|
||||
Lex.Lex();
|
||||
|
||||
if (Opc == Instruction::GetElementPtr)
|
||||
InBounds = EatIfPresent(lltok::kw_inbounds);
|
||||
if (ParseToken(lltok::lparen, "expected '(' in constantexpr") ||
|
||||
ParseGlobalValueVector(Elts) ||
|
||||
|
||||
if (ParseToken(lltok::lparen, "expected '(' in constantexpr"))
|
||||
return true;
|
||||
|
||||
LocTy ExplicitTypeLoc = Lex.getLoc();
|
||||
if (Opc == Instruction::GetElementPtr) {
|
||||
if (ParseType(Ty) ||
|
||||
ParseToken(lltok::comma, "expected comma after getelementptr's type"))
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ParseGlobalValueVector(Elts) ||
|
||||
ParseToken(lltok::rparen, "expected ')' in constantexpr"))
|
||||
return true;
|
||||
|
||||
@ -2792,6 +2804,10 @@ bool LLParser::ParseValID(ValID &ID, PerFunctionState *PFS) {
|
||||
|
||||
Type *BaseType = Elts[0]->getType();
|
||||
auto *BasePointerType = cast<PointerType>(BaseType->getScalarType());
|
||||
if (Ty != BasePointerType->getElementType())
|
||||
return Error(
|
||||
ExplicitTypeLoc,
|
||||
"explicit pointee type doesn't match operand's pointee type");
|
||||
|
||||
ArrayRef<Constant *> Indices(Elts.begin() + 1, Elts.end());
|
||||
for (Constant *Val : Indices) {
|
||||
|
@ -1223,6 +1223,14 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
|
||||
Out << ' ' << getPredicateText(CE->getPredicate());
|
||||
Out << " (";
|
||||
|
||||
if (const GEPOperator *GEP = dyn_cast<GEPOperator>(CE)) {
|
||||
TypePrinter.print(
|
||||
cast<PointerType>(GEP->getPointerOperandType()->getScalarType())
|
||||
->getElementType(),
|
||||
Out);
|
||||
Out << ", ";
|
||||
}
|
||||
|
||||
for (User::const_op_iterator OI=CE->op_begin(); OI != CE->op_end(); ++OI) {
|
||||
TypePrinter.print((*OI)->getType(), Out);
|
||||
Out << ' ';
|
||||
|
@ -15,8 +15,8 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
define void @test() {
|
||||
%D = getelementptr %T, %T* @G, i64 0, i32 0
|
||||
%E = getelementptr %T, %T* @G, i64 0, i32 1, i64 5
|
||||
%F = getelementptr i32, i32* getelementptr (%T* @G, i64 0, i32 0), i64 0
|
||||
%X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T* @G, i64 0, i32 1), i64 0, i64 5
|
||||
%F = getelementptr i32, i32* getelementptr (%T, %T* @G, i64 0, i32 0), i64 0
|
||||
%X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T, %T* @G, i64 0, i32 1), i64 0, i64 5
|
||||
|
||||
ret void
|
||||
}
|
||||
|
@ -8,9 +8,9 @@ define i32 @_Z3fooP1A(%struct.A* %b) {
|
||||
; CHECK: %tmp7 = load
|
||||
; CHECK: ret i32 %tmp7
|
||||
entry:
|
||||
store i32 1, i32* getelementptr (%struct.B* @a, i32 0, i32 0, i32 0), align 8
|
||||
store i32 1, i32* getelementptr (%struct.B, %struct.B* @a, i32 0, i32 0, i32 0), align 8
|
||||
%tmp4 = getelementptr %struct.A, %struct.A* %b, i32 0, i32 0 ;<i32*> [#uses=1]
|
||||
store i32 0, i32* %tmp4, align 4
|
||||
%tmp7 = load i32, i32* getelementptr (%struct.B* @a, i32 0, i32 0, i32 0), align 8 ; <i32> [#uses=1]
|
||||
%tmp7 = load i32, i32* getelementptr (%struct.B, %struct.B* @a, i32 0, i32 0, i32 0), align 8 ; <i32> [#uses=1]
|
||||
ret i32 %tmp7
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ target triple = "i686-pc-linux-gnu"
|
||||
|
||||
define void @test291() nounwind {
|
||||
entry:
|
||||
store i32 1138410269, i32* getelementptr ([5 x %struct.S291]* @a291, i32 0, i32 2, i32 1)
|
||||
%tmp54 = load i32, i32* bitcast (%struct.S291* getelementptr ([5 x %struct.S291]* @a291, i32 0, i32 2) to i32*), align 4 ; <i32> [#uses=0]
|
||||
store i32 1138410269, i32* getelementptr ([5 x %struct.S291], [5 x %struct.S291]* @a291, i32 0, i32 2, i32 1)
|
||||
%tmp54 = load i32, i32* bitcast (%struct.S291* getelementptr ([5 x %struct.S291], [5 x %struct.S291]* @a291, i32 0, i32 2) to i32*), align 4 ; <i32> [#uses=0]
|
||||
unreachable
|
||||
}
|
||||
|
@ -9,11 +9,11 @@ target triple = "x86_64-apple-macosx10.8.0"
|
||||
|
||||
define i32 @main() nounwind uwtable ssp {
|
||||
entry:
|
||||
%tmp = load i8, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
||||
%tmp = load i8, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
||||
%tmp1 = or i8 %tmp, -128
|
||||
store i8 %tmp1, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
||||
store i8 %tmp1, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
||||
%tmp2 = load i64, i64* bitcast ({ i8, i8, i8, i8, i8 }* @a to i64*), align 8
|
||||
store i8 11, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
||||
store i8 11, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
||||
%tmp3 = trunc i64 %tmp2 to i32
|
||||
ret i32 %tmp3
|
||||
|
||||
|
@ -97,7 +97,7 @@ define i32 @constexpr_test() {
|
||||
call void @external(i32* %X)
|
||||
|
||||
%Y = load i32, i32* %X
|
||||
store i32 5, i32* getelementptr ({ i32 }* @Global, i64 0, i32 0)
|
||||
store i32 5, i32* getelementptr ({ i32 }, { i32 }* @Global, i64 0, i32 0)
|
||||
%REMOVE = load i32, i32* %X
|
||||
%retval = sub i32 %Y, %REMOVE
|
||||
ret i32 %retval
|
||||
|
@ -14,7 +14,7 @@ for.cond2.preheader: ; preds = %for.end, %entry
|
||||
br label %for.body4
|
||||
|
||||
for.body4: ; preds = %for.body4, %for.cond2.preheader
|
||||
%lsr.iv4 = phi [16000 x double]* [ %i11, %for.body4 ], [ bitcast (double* getelementptr inbounds ([16000 x double]* @Y, i64 0, i64 8)
|
||||
%lsr.iv4 = phi [16000 x double]* [ %i11, %for.body4 ], [ bitcast (double* getelementptr inbounds ([16000 x double], [16000 x double]* @Y, i64 0, i64 8)
|
||||
to [16000 x double]*), %for.cond2.preheader ]
|
||||
%lsr.iv1 = phi [16000 x double]* [ %i10, %for.body4 ], [ @X, %for.cond2.preheader ]
|
||||
|
||||
|
@ -11,6 +11,6 @@
|
||||
define void @test_no_crash() #0 {
|
||||
entry:
|
||||
call i8* asm "nop", "=r,r"(
|
||||
i8* getelementptr inbounds ([1 x i8]* @G, i64 0, i64 0))
|
||||
i8* getelementptr inbounds ([1 x i8], [1 x i8]* @G, i64 0, i64 0))
|
||||
ret void
|
||||
}
|
||||
|
@ -19,8 +19,8 @@
|
||||
; CHECK: MayAlias: i32* %F, i8* %X
|
||||
define void @test() {
|
||||
%D = getelementptr %T, %T* @G, i64 0, i32 0
|
||||
%F = getelementptr i32, i32* getelementptr (%T* @G, i64 0, i32 0), i64 0
|
||||
%X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T* @G, i64 0, i32 1), i64 0, i64 5
|
||||
%F = getelementptr i32, i32* getelementptr (%T, %T* @G, i64 0, i32 0), i64 0
|
||||
%X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T, %T* @G, i64 0, i32 1), i64 0, i64 5
|
||||
|
||||
ret void
|
||||
}
|
||||
@ -30,7 +30,7 @@ define void @test() {
|
||||
; CHECK: MayAlias: i32* %H, i32* %arg0
|
||||
; CHECK: MayAlias: i32* %F, i32* %H
|
||||
define void @simplecheck(i32* %arg0) {
|
||||
%F = getelementptr i32, i32* getelementptr (%T* @G, i64 0, i32 0), i64 0
|
||||
%F = getelementptr i32, i32* getelementptr (%T, %T* @G, i64 0, i32 0), i64 0
|
||||
%H = getelementptr %T, %T* @G2, i64 0, i32 0
|
||||
|
||||
ret void
|
||||
@ -48,7 +48,7 @@ define void @simplecheck(i32* %arg0) {
|
||||
define void @checkNesting(i32* %arg0) {
|
||||
%A = getelementptr [1 x i32],
|
||||
[1 x i32]* getelementptr
|
||||
([1 x [1 x i32]]* getelementptr (%NestedT* @NT, i64 0, i32 0),
|
||||
([1 x [1 x i32]], [1 x [1 x i32]]* getelementptr (%NestedT, %NestedT* @NT, i64 0, i32 0),
|
||||
i64 0,
|
||||
i32 0),
|
||||
i64 0,
|
||||
|
@ -36,7 +36,7 @@ for.body3.preheader:
|
||||
for.body3:
|
||||
%j.011 = phi i32 [ %inc, %for.body3 ], [ 0, %for.body3.preheader ]
|
||||
%0 = load i32, i32* %arrayidx
|
||||
store i32 %0, i32* getelementptr inbounds (%struct.s* @S, i64 0, i32 0, i64 0, i64 0)
|
||||
store i32 %0, i32* getelementptr inbounds (%struct.s, %struct.s* @S, i64 0, i32 0, i64 0, i64 0)
|
||||
%inc = add nuw nsw i32 %j.011, 1
|
||||
%exitcond = icmp eq i32 %inc, %N
|
||||
br i1 %exitcond, label %for.inc4, label %for.body3
|
||||
|
@ -22,9 +22,9 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32,
|
||||
define i32 @main() nounwind uwtable ssp {
|
||||
main_entry:
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast (%struct.anon* @b to i8*), i8* bitcast (%struct.anon* @a to i8*), i64 12, i32 4, i1 false)
|
||||
%0 = load volatile i32, i32* getelementptr inbounds (%struct.anon* @b, i64 0, i32 0), align 4
|
||||
%0 = load volatile i32, i32* getelementptr inbounds (%struct.anon, %struct.anon* @b, i64 0, i32 0), align 4
|
||||
store i32 %0, i32* @c, align 4
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast (%struct.anon* @b to i8*), i8* bitcast (%struct.anon* @a to i8*), i64 12, i32 4, i1 false) nounwind
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i32 %0) nounwind
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %0) nounwind
|
||||
ret i32 0
|
||||
}
|
||||
|
@ -119,8 +119,8 @@ define void @test2() {
|
||||
; CHECK-NOT: ->
|
||||
|
||||
load i8*, i8** bitcast (void ()** @g to i8**)
|
||||
load i8*, i8** bitcast (void ()** getelementptr ([4 x void ()*]* @g1, i32 0, i32 2) to i8**)
|
||||
load i8*, i8** bitcast (void ()** getelementptr ({i8, void ()*, i8}* @g2, i32 0, i32 1) to i8**)
|
||||
load i8*, i8** bitcast (void ()** getelementptr ([4 x void ()*], [4 x void ()*]* @g1, i32 0, i32 2) to i8**)
|
||||
load i8*, i8** bitcast (void ()** getelementptr ({i8, void ()*, i8}, {i8, void ()*, i8}* @g2, i32 0, i32 1) to i8**)
|
||||
load i8*, i8** bitcast (void ()** @h to i8**)
|
||||
ret void
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ for.cond: ; preds = %for.body, %lbl_818
|
||||
|
||||
for.body: ; preds = %for.cond
|
||||
%idxprom = sext i32 %0 to i64
|
||||
%arrayidx = getelementptr inbounds [0 x i32], [0 x i32]* getelementptr inbounds ([1 x [0 x i32]]* @g_244, i32 0, i64 0), i32 0, i64 %idxprom
|
||||
%arrayidx = getelementptr inbounds [0 x i32], [0 x i32]* getelementptr inbounds ([1 x [0 x i32]], [1 x [0 x i32]]* @g_244, i32 0, i64 0), i32 0, i64 %idxprom
|
||||
%1 = load i32, i32* %arrayidx, align 1
|
||||
store i32 %1, i32* @func_21_l_773, align 4
|
||||
store i32 1, i32* @g_814, align 4
|
||||
|
@ -65,7 +65,7 @@ for.inc: ; preds = %for.body
|
||||
br label %for.cond
|
||||
|
||||
for.end: ; preds = %for.body, %for.cond
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i32 %g_4.0) nounwind ; <i32> [#uses=0]
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %g_4.0) nounwind ; <i32> [#uses=0]
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
|
@ -9,12 +9,12 @@
|
||||
; Function Attrs: nounwind ssp uwtable
|
||||
define i32 @main() {
|
||||
; CHECK-LABEL: Classifying expressions for: @main
|
||||
store i8 0, i8* getelementptr inbounds (%struct.anon* @a, i64 0, i32 0), align 1
|
||||
store i8 0, i8* getelementptr inbounds (%struct.anon, %struct.anon* @a, i64 0, i32 0), align 1
|
||||
br label %loop
|
||||
|
||||
loop:
|
||||
%storemerge1 = phi i8 [ 0, %0 ], [ %inc, %loop ]
|
||||
%m = load volatile i32, i32* getelementptr inbounds (%struct.S* @b, i64 0, i32 0), align 4
|
||||
%m = load volatile i32, i32* getelementptr inbounds (%struct.S, %struct.S* @b, i64 0, i32 0), align 4
|
||||
%inc = add nuw i8 %storemerge1, 1
|
||||
; CHECK: %inc = add nuw i8 %storemerge1, 1
|
||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop>
|
||||
@ -23,6 +23,6 @@ loop:
|
||||
br i1 %exitcond, label %exit, label %loop
|
||||
|
||||
exit:
|
||||
store i8 -128, i8* getelementptr inbounds (%struct.anon* @a, i64 0, i32 0), align 1
|
||||
store i8 -128, i8* getelementptr inbounds (%struct.anon, %struct.anon* @a, i64 0, i32 0), align 1
|
||||
ret i32 0
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ bb4.bb5_crit_edge: ; preds = %bb4
|
||||
br label %bb5
|
||||
|
||||
bb5: ; preds = %bb4.bb5_crit_edge, %entry
|
||||
%tmp12 = load i32, i32* getelementptr ([32 x [256 x i32]]* @table, i64 0, i64 9, i64 132), align 16 ; <i32> [#uses=1]
|
||||
%tmp12 = load i32, i32* getelementptr ([32 x [256 x i32]], [32 x [256 x i32]]* @table, i64 0, i64 9, i64 132), align 16 ; <i32> [#uses=1]
|
||||
%tmp13 = icmp eq i32 %tmp12, -1116 ; <i1> [#uses=1]
|
||||
br i1 %tmp13, label %bb7, label %bb6
|
||||
|
||||
|
@ -63,7 +63,7 @@ for.cond.for.end9_crit_edge: ; preds = %for.inc8
|
||||
|
||||
for.end9: ; preds = %entry.for.end9_crit_edge, %for.cond.for.end9_crit_edge
|
||||
%3 = phi i32 [ %.pre, %entry.for.end9_crit_edge ], [ %shl, %for.cond.for.end9_crit_edge ]
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i32 %3) #2
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %3) #2
|
||||
br label %return
|
||||
|
||||
return.loopexit.split: ; preds = %for.cond1.preheader.lr.ph
|
||||
|
@ -17,10 +17,10 @@ define %structA** @test(%classA* %this, i32** %p1) #0 align 2 {
|
||||
entry:
|
||||
; CHECK-LABEL: @test
|
||||
; CHECK: load i32*, i32** %p1, align 8, !tbaa
|
||||
; CHECK: load i32*, i32** getelementptr (%classC* null, i32 0, i32 1, i32 0, i32 0), align 8, !tbaa
|
||||
; CHECK: load i32*, i32** getelementptr (%classC, %classC* null, i32 0, i32 1, i32 0, i32 0), align 8, !tbaa
|
||||
; CHECK: call void @callee
|
||||
%0 = load i32*, i32** %p1, align 8, !tbaa !1
|
||||
%1 = load i32*, i32** getelementptr (%classC* null, i32 0, i32 1, i32 0, i32 0), align 8, !tbaa !5
|
||||
%1 = load i32*, i32** getelementptr (%classC, %classC* null, i32 0, i32 1, i32 0, i32 0), align 8, !tbaa !5
|
||||
call void @callee(i32* %0, i32* %1)
|
||||
unreachable
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ define i8* @test() {
|
||||
br label %BB1
|
||||
|
||||
BB1: ; preds = %BB2, %0
|
||||
%ret = phi i8* [ getelementptr ([12 x i8]* @.LC0, i64 0, i64 0), %0 ], [ null, %BB2 ] ; <i8*> [#uses=1]
|
||||
%ret = phi i8* [ getelementptr ([12 x i8], [12 x i8]* @.LC0, i64 0, i64 0), %0 ], [ null, %BB2 ] ; <i8*> [#uses=1]
|
||||
ret i8* %ret
|
||||
|
||||
BB2: ; No predecessors!
|
||||
|
@ -4,6 +4,6 @@
|
||||
@.LC0 = internal global [12 x i8] c"hello world\00" ; <[12 x i8]*> [#uses=1]
|
||||
|
||||
define i8* @test() {
|
||||
ret i8* getelementptr ([12 x i8]* @.LC0, i64 0, i64 0)
|
||||
ret i8* getelementptr ([12 x i8], [12 x i8]* @.LC0, i64 0, i64 0)
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,6 @@ declare i32 @puts(i8*)
|
||||
|
||||
define void @main() {
|
||||
bb1:
|
||||
%reg211 = call i32 @puts( i8* getelementptr ([4 x i8]* @.LC0, i64 0, i64 0) ) ; <i32> [#uses=0]
|
||||
%reg211 = call i32 @puts( i8* getelementptr ([4 x i8], [4 x i8]* @.LC0, i64 0, i64 0) ) ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
@.str_1 = internal constant [6 x i8] c"_Bool\00" ; <[6 x i8]*> [#uses=2]
|
||||
|
||||
define i32 @test() {
|
||||
%tmp.54 = load i8, i8* getelementptr ([6 x i8]* @.str_1, i64 0, i64 1) ; <i8> [#uses=1]
|
||||
%tmp.54 = load i8, i8* getelementptr ([6 x i8], [6 x i8]* @.str_1, i64 0, i64 1) ; <i8> [#uses=1]
|
||||
%tmp.55 = icmp ne i8 %tmp.54, 66 ; <i1> [#uses=1]
|
||||
br i1 %tmp.55, label %then.7, label %endif.7
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
@data_triangleItems = internal constant [2908 x %struct.TTriangleItem] zeroinitializer; <[2908 x %struct.TTriangleItem]*> [#uses=2]
|
||||
|
||||
define void @foo() {
|
||||
store i16 0, i16* getelementptr ([2908 x %struct.TTriangleItem]* @data_triangleItems, i64 0, i64 0, i32 2, i64 0, i32 0)
|
||||
store i16 0, i16* getelementptr ([2908 x %struct.TTriangleItem], [2908 x %struct.TTriangleItem]* @data_triangleItems, i64 0, i64 0, i32 2, i64 0, i32 0)
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@ define i32 @main(i32 %argc, i8** %argv) {
|
||||
entry:
|
||||
%tmp65 = getelementptr i8*, i8** %argv, i32 1 ; <i8**> [#uses=1]
|
||||
%tmp66 = load i8*, i8** %tmp65 ; <i8*> [#uses=0]
|
||||
br i1 icmp ne (i32 sub (i32 ptrtoint (i8* getelementptr ([4 x i8]* @str, i32 0, i64 1) to i32), i32 ptrtoint ([4 x i8]* @str to i32)), i32 1), label %exit_1, label %exit_2
|
||||
br i1 icmp ne (i32 sub (i32 ptrtoint (i8* getelementptr ([4 x i8], [4 x i8]* @str, i32 0, i64 1) to i32), i32 ptrtoint ([4 x i8]* @str to i32)), i32 1), label %exit_1, label %exit_2
|
||||
|
||||
exit_1: ; preds = %entry
|
||||
ret i32 0
|
||||
|
@ -12,8 +12,8 @@
|
||||
|
||||
define void @foo() {
|
||||
entry:
|
||||
%tmp1 = load i32 addrspace(33)*, i32 addrspace(33)* addrspace(42)* getelementptr (%struct.mystruct addrspace(42)* @input, i32 0, i32 3), align 4 ; <i32 addrspace(33)*> [#uses=1]
|
||||
store i32 addrspace(33)* %tmp1, i32 addrspace(33)* addrspace(66)* getelementptr (%struct.mystruct addrspace(66)* @output, i32 0, i32 1), align 4
|
||||
%tmp1 = load i32 addrspace(33)*, i32 addrspace(33)* addrspace(42)* getelementptr (%struct.mystruct, %struct.mystruct addrspace(42)* @input, i32 0, i32 3), align 4 ; <i32 addrspace(33)*> [#uses=1]
|
||||
store i32 addrspace(33)* %tmp1, i32 addrspace(33)* addrspace(66)* getelementptr (%struct.mystruct, %struct.mystruct addrspace(66)* @output, i32 0, i32 1), align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -2,5 +2,5 @@
|
||||
; RUN: verify-uselistorder %s
|
||||
|
||||
@foo = global i32 0
|
||||
@bar = constant i32* getelementptr(i32* @foo)
|
||||
@bar = constant i32* getelementptr(i32, i32* @foo)
|
||||
|
||||
|
@ -7,7 +7,7 @@ target triple = "x86_64-apple-darwin10.2"
|
||||
%struct.anon = type { i32, i32 }
|
||||
%struct.test = type { i64, %struct.anon, %struct.test* }
|
||||
|
||||
@TestArrayPtr = global %struct.test* getelementptr inbounds ([10 x %struct.test]* @TestArray, i64 0, i64 3) ; <%struct.test**> [#uses=1]
|
||||
@TestArrayPtr = global %struct.test* getelementptr inbounds ([10 x %struct.test], [10 x %struct.test]* @TestArray, i64 0, i64 3) ; <%struct.test**> [#uses=1]
|
||||
@TestArray = common global [10 x %struct.test] zeroinitializer, align 32 ; <[10 x %struct.test]*> [#uses=2]
|
||||
|
||||
define i32 @main() nounwind readonly {
|
||||
|
@ -19,11 +19,11 @@ global i64* inttoptr (i64 xor (i64 ptrtoint (i64* @A to i64), i64 0) to i64*) ;
|
||||
%Ty = type { i32, i32 }
|
||||
@B = external global %Ty
|
||||
|
||||
global i1 icmp slt (i64* @A, i64* getelementptr (i64* @A, i64 1)) ; true
|
||||
global i1 icmp ult (i64* @A, i64* getelementptr (i64* @A, i64 1)) ; true
|
||||
global i1 icmp slt (i64* @A, i64* getelementptr (i64* @A, i64 0)) ; false
|
||||
global i1 icmp slt (i32* getelementptr (%Ty* @B, i64 0, i32 0),
|
||||
i32* getelementptr (%Ty* @B, i64 0, i32 1)) ; true
|
||||
global i1 icmp slt (i64* @A, i64* getelementptr (i64, i64* @A, i64 1)) ; true
|
||||
global i1 icmp ult (i64* @A, i64* getelementptr (i64, i64* @A, i64 1)) ; true
|
||||
global i1 icmp slt (i64* @A, i64* getelementptr (i64, i64* @A, i64 0)) ; false
|
||||
global i1 icmp slt (i32* getelementptr (%Ty, %Ty* @B, i64 0, i32 0),
|
||||
i32* getelementptr (%Ty, %Ty* @B, i64 0, i32 1)) ; true
|
||||
;global i1 icmp ne (i64* @A, i64* bitcast (%Ty* @B to i64*)) ; true
|
||||
|
||||
; PR2206
|
||||
|
@ -14,21 +14,21 @@ target datalayout = "p:32:32"
|
||||
; icmp should return true. It's not valid to *dereference* in @B from a pointer
|
||||
; based on @A, but icmp isn't a dereference.
|
||||
|
||||
; CHECK: @C = global i1 icmp eq (i64* getelementptr inbounds (i64* @A, i64 1), i64* @B)
|
||||
@C = global i1 icmp eq (i64* getelementptr inbounds (i64* @A, i64 1), i64* @B)
|
||||
; CHECK: @C = global i1 icmp eq (i64* getelementptr inbounds (i64, i64* @A, i64 1), i64* @B)
|
||||
@C = global i1 icmp eq (i64* getelementptr inbounds (i64, i64* @A, i64 1), i64* @B)
|
||||
|
||||
; Don't fold this completely away either. In theory this could be simplified
|
||||
; to only use a gep on one side of the icmp though.
|
||||
|
||||
; CHECK: @D = global i1 icmp eq (i64* getelementptr inbounds (i64* @A, i64 1), i64* getelementptr inbounds (i64* @B, i64 2))
|
||||
@D = global i1 icmp eq (i64* getelementptr inbounds (i64* @A, i64 1), i64* getelementptr inbounds (i64* @B, i64 2))
|
||||
; CHECK: @D = global i1 icmp eq (i64* getelementptr inbounds (i64, i64* @A, i64 1), i64* getelementptr inbounds (i64, i64* @B, i64 2))
|
||||
@D = global i1 icmp eq (i64* getelementptr inbounds (i64, i64* @A, i64 1), i64* getelementptr inbounds (i64, i64* @B, i64 2))
|
||||
|
||||
; CHECK: @E = global i64 addrspace(1)* addrspacecast (i64* @A to i64 addrspace(1)*)
|
||||
@E = global i64 addrspace(1)* addrspacecast(i64* @A to i64 addrspace(1)*)
|
||||
|
||||
; Don't add an inbounds on @weak.gep, since @weak may be null.
|
||||
; CHECK: @weak.gep = global i32* getelementptr (i32* @weak, i32 1)
|
||||
@weak.gep = global i32* getelementptr (i32* @weak, i32 1)
|
||||
; CHECK: @weak.gep = global i32* getelementptr (i32, i32* @weak, i32 1)
|
||||
@weak.gep = global i32* getelementptr (i32, i32* @weak, i32 1)
|
||||
@weak = extern_weak global i32
|
||||
|
||||
; An object with weak linkage cannot have it's identity determined at compile time.
|
||||
@ -43,8 +43,8 @@ target datalayout = "p:32:32"
|
||||
@empty.cmp = global i1 icmp eq ([0 x i8]* @empty.1, [0 x i8]* @empty.2)
|
||||
|
||||
; Don't add an inbounds on @glob.a3, since it's not inbounds.
|
||||
; CHECK: @glob.a3 = alias getelementptr (i32* @glob.a2, i32 1)
|
||||
; CHECK: @glob.a3 = alias getelementptr (i32, i32* @glob.a2, i32 1)
|
||||
@glob = global i32 0
|
||||
@glob.a3 = alias getelementptr (i32* @glob.a2, i32 1)
|
||||
@glob.a2 = alias getelementptr (i32* @glob.a1, i32 1)
|
||||
@glob.a3 = alias getelementptr (i32, i32* @glob.a2, i32 1)
|
||||
@glob.a2 = alias getelementptr (i32, i32* @glob.a1, i32 1)
|
||||
@glob.a1 = alias i32* @glob
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
; Globals.
|
||||
@global = global i32 0
|
||||
@alias.ref1 = global i32* getelementptr inbounds (i32* @alias, i64 1)
|
||||
@alias.ref2 = global i32* getelementptr inbounds (i32* @alias, i64 1)
|
||||
@alias.ref1 = global i32* getelementptr inbounds (i32, i32* @alias, i64 1)
|
||||
@alias.ref2 = global i32* getelementptr inbounds (i32, i32* @alias, i64 1)
|
||||
|
||||
; Aliases.
|
||||
@alias = alias i32* @global
|
||||
@alias.ref3 = alias i32* getelementptr inbounds (i32* @alias, i64 1)
|
||||
@alias.ref4 = alias i32* getelementptr inbounds (i32* @alias, i64 1)
|
||||
@alias.ref3 = alias i32* getelementptr inbounds (i32, i32* @alias, i64 1)
|
||||
@alias.ref4 = alias i32* getelementptr inbounds (i32, i32* @alias, i64 1)
|
||||
|
@ -55,6 +55,6 @@ define i32 @test.objectsize() {
|
||||
; CHECK-LABEL: @test.objectsize(
|
||||
; CHECK: @llvm.objectsize.i32.p0i8
|
||||
; CHECK-DAG: declare i32 @llvm.objectsize.i32.p0i8
|
||||
%s = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8]* @a, i32 0, i32 0), i1 false)
|
||||
%s = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @a, i32 0, i32 0), i1 false)
|
||||
ret i32 %s
|
||||
}
|
||||
|
@ -195,8 +195,8 @@ define i64 @lshr_exact_ce() {
|
||||
}
|
||||
|
||||
define i64* @gep_nw_ce() {
|
||||
; CHECK: ret i64* getelementptr inbounds (i64* @addr, i64 171)
|
||||
ret i64* getelementptr inbounds (i64* @addr, i64 171)
|
||||
; CHECK: ret i64* getelementptr inbounds (i64, i64* @addr, i64 171)
|
||||
ret i64* getelementptr inbounds (i64, i64* @addr, i64 171)
|
||||
}
|
||||
|
||||
define i64 @add_plain_ce() {
|
||||
@ -220,8 +220,8 @@ define i64 @sdiv_plain_ce() {
|
||||
}
|
||||
|
||||
define i64* @gep_plain_ce() {
|
||||
; CHECK: ret i64* getelementptr (i64* @addr, i64 171)
|
||||
ret i64* getelementptr (i64* @addr, i64 171)
|
||||
; CHECK: ret i64* getelementptr (i64, i64* @addr, i64 171)
|
||||
ret i64* getelementptr (i64, i64* @addr, i64 171)
|
||||
}
|
||||
|
||||
define i64 @add_both_reversed_ce() {
|
||||
|
@ -3,21 +3,21 @@
|
||||
|
||||
; Verify that over-indexed getelementptrs are folded.
|
||||
@A = external global [2 x [3 x [5 x [7 x i32]]]]
|
||||
@B = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]]* @A, i64 0, i64 0, i64 2, i64 1, i64 7523)
|
||||
; CHECK: @B = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]]* @A, i64 36, i64 0, i64 1, i64 0, i64 5)
|
||||
@C = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]]* @A, i64 3, i64 2, i64 0, i64 0, i64 7523)
|
||||
; CHECK: @C = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]]* @A, i64 39, i64 1, i64 1, i64 4, i64 5)
|
||||
@B = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]], [2 x [3 x [5 x [7 x i32]]]]* @A, i64 0, i64 0, i64 2, i64 1, i64 7523)
|
||||
; CHECK: @B = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]], [2 x [3 x [5 x [7 x i32]]]]* @A, i64 36, i64 0, i64 1, i64 0, i64 5)
|
||||
@C = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]], [2 x [3 x [5 x [7 x i32]]]]* @A, i64 3, i64 2, i64 0, i64 0, i64 7523)
|
||||
; CHECK: @C = global i32* getelementptr ([2 x [3 x [5 x [7 x i32]]]], [2 x [3 x [5 x [7 x i32]]]]* @A, i64 39, i64 1, i64 1, i64 4, i64 5)
|
||||
|
||||
; Verify that constant expression GEPs work with i84 indices.
|
||||
@D = external global [1 x i32]
|
||||
|
||||
@E = global i32* getelementptr inbounds ([1 x i32]* @D, i84 0, i64 1)
|
||||
; CHECK: @E = global i32* getelementptr inbounds ([1 x i32]* @D, i84 1, i64 0)
|
||||
@E = global i32* getelementptr inbounds ([1 x i32], [1 x i32]* @D, i84 0, i64 1)
|
||||
; CHECK: @E = global i32* getelementptr inbounds ([1 x i32], [1 x i32]* @D, i84 1, i64 0)
|
||||
|
||||
; Verify that i16 indices work.
|
||||
@x = external global {i32, i32}
|
||||
@y = global i32* getelementptr ({ i32, i32 }* @x, i16 42, i32 0)
|
||||
; CHECK: @y = global i32* getelementptr ({ i32, i32 }* @x, i16 42, i32 0)
|
||||
@y = global i32* getelementptr ({ i32, i32 }, { i32, i32 }* @x, i16 42, i32 0)
|
||||
; CHECK: @y = global i32* getelementptr ({ i32, i32 }, { i32, i32 }* @x, i16 42, i32 0)
|
||||
|
||||
; See if i92 indices work too.
|
||||
define i32 *@test({i32, i32}* %t, i92 %n) {
|
||||
@ -29,7 +29,7 @@ define i32 *@test({i32, i32}* %t, i92 %n) {
|
||||
|
||||
; Verify that constant expression vector GEPs work.
|
||||
|
||||
@z = global <2 x i32*> getelementptr (<2 x [3 x {i32, i32}]*> zeroinitializer, <2 x i32> <i32 1, i32 2>, <2 x i32> <i32 2, i32 3>, <2 x i32> <i32 1, i32 1>)
|
||||
@z = global <2 x i32*> getelementptr ([3 x {i32, i32}], <2 x [3 x {i32, i32}]*> zeroinitializer, <2 x i32> <i32 1, i32 2>, <2 x i32> <i32 2, i32 3>, <2 x i32> <i32 1, i32 1>)
|
||||
|
||||
; Verify that struct GEP works with a vector of pointers.
|
||||
define <2 x i32*> @test7(<2 x {i32, i32}*> %a) {
|
||||
|
@ -2,4 +2,4 @@
|
||||
|
||||
; CHECK: getelementptr vector index has a wrong number of elements
|
||||
|
||||
global <2 x i32*> getelementptr (<4 x [3 x {i32, i32}]*> zeroinitializer, <2 x i32> <i32 1, i32 2>, <2 x i32> <i32 2, i32 3>, <2 x i32> <i32 1, i32 1>)
|
||||
global <2 x i32*> getelementptr ([3 x {i32, i32}], <4 x [3 x {i32, i32}]*> zeroinitializer, <2 x i32> <i32 1, i32 2>, <2 x i32> <i32 2, i32 3>, <2 x i32> <i32 1, i32 1>)
|
||||
|
@ -4,7 +4,7 @@
|
||||
; RUN: verify-uselistorder < %s
|
||||
|
||||
@a = global [4 x i1] [i1 0, i1 1, i1 0, i1 1]
|
||||
@b = alias i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)
|
||||
@b = alias i1* getelementptr ([4 x i1], [4 x i1]* @a, i64 0, i64 2)
|
||||
|
||||
; Check use-list order of constants used by globals.
|
||||
@glob1 = global i5 7
|
||||
@ -48,9 +48,9 @@ first:
|
||||
|
||||
define i1 @loada() {
|
||||
entry:
|
||||
%a = load i1, i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)
|
||||
%a = load i1, i1* getelementptr ([4 x i1], [4 x i1]* @a, i64 0, i64 2)
|
||||
ret i1 %a
|
||||
}
|
||||
|
||||
uselistorder i5 7, { 1, 0, 2 }
|
||||
uselistorder i1* getelementptr ([4 x i1]* @a, i64 0, i64 2), { 1, 0 }
|
||||
uselistorder i1* getelementptr ([4 x i1], [4 x i1]* @a, i64 0, i64 2), { 1, 0 }
|
||||
|
@ -4,11 +4,11 @@
|
||||
; RUN: verify-uselistorder < %s
|
||||
|
||||
@ba1 = constant i8* blockaddress (@bafunc1, %bb)
|
||||
@ba2 = constant i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
@ba3 = constant i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
@ba2 = constant i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
@ba3 = constant i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
|
||||
define i8* @babefore() {
|
||||
ret i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
ret i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
bb1:
|
||||
ret i8* blockaddress (@bafunc1, %bb)
|
||||
bb2:
|
||||
|
@ -311,7 +311,7 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @getelementptr({i8, i8}* %s, <4 x i8*> %ptrs, <4 x i64> %offsets ){
|
||||
define void @getelementptr({i8, i8}, {i8, i8}* %s, <4 x i8*> %ptrs, <4 x i64> %offsets ){
|
||||
entry:
|
||||
; CHECK: %res1 = getelementptr { i8, i8 }, { i8, i8 }* %s, i32 1, i32 1
|
||||
%res1 = getelementptr {i8, i8}, {i8, i8}* %s, i32 1, i32 1
|
||||
|
@ -21,7 +21,7 @@
|
||||
%"void*[]" = type { i64, i8** }
|
||||
@_D10ModuleInfo6__vtblZ = external constant %object.ModuleInfo.__vtbl ; <%object.ModuleInfo.__vtbl*> [#uses=1]
|
||||
@.str = internal constant [20 x i8] c"tango.core.BitManip\00" ; <[20 x i8]*> [#uses=1]
|
||||
@_D5tango4core8BitManip8__ModuleZ = global %0 { %object.ModuleInfo.__vtbl* @_D10ModuleInfo6__vtblZ, i8* null, %"byte[]" { i64 19, i8* getelementptr ([20 x i8]* @.str, i32 0, i32 0) }, %1 zeroinitializer, %"ClassInfo[]" zeroinitializer, i32 4, void ()* null, void ()* null, void ()* null, i8* null, void ()* null } ; <%0*> [#uses=1]
|
||||
@_D5tango4core8BitManip8__ModuleZ = global %0 { %object.ModuleInfo.__vtbl* @_D10ModuleInfo6__vtblZ, i8* null, %"byte[]" { i64 19, i8* getelementptr ([20 x i8], [20 x i8]* @.str, i32 0, i32 0) }, %1 zeroinitializer, %"ClassInfo[]" zeroinitializer, i32 4, void ()* null, void ()* null, void ()* null, i8* null, void ()* null } ; <%0*> [#uses=1]
|
||||
@_D5tango4core8BitManip11__moduleRefZ = internal global %ModuleReference { %ModuleReference* null, %object.ModuleInfo* bitcast (%0* @_D5tango4core8BitManip8__ModuleZ to %object.ModuleInfo*) } ; <%ModuleReference*> [#uses=2]
|
||||
@_Dmodule_ref = external global %ModuleReference* ; <%ModuleReference**> [#uses=2]
|
||||
@llvm.global_ctors = appending constant [1 x %2] [%2 { i32 65535, void ()* @_D5tango4core8BitManip16__moduleinfoCtorZ }] ; <[1 x %2]*> [#uses=0]
|
||||
@ -78,7 +78,7 @@ entry:
|
||||
define internal void @_D5tango4core8BitManip16__moduleinfoCtorZ() nounwind {
|
||||
moduleinfoCtorEntry:
|
||||
%current = load %ModuleReference*, %ModuleReference** @_Dmodule_ref ; <%ModuleReference*> [#uses=1]
|
||||
store %ModuleReference* %current, %ModuleReference** getelementptr (%ModuleReference* @_D5tango4core8BitManip11__moduleRefZ, i32 0, i32 0)
|
||||
store %ModuleReference* %current, %ModuleReference** getelementptr (%ModuleReference, %ModuleReference* @_D5tango4core8BitManip11__moduleRefZ, i32 0, i32 0)
|
||||
store %ModuleReference* @_D5tango4core8BitManip11__moduleRefZ, %ModuleReference** @_Dmodule_ref
|
||||
ret void
|
||||
}
|
||||
|
@ -13,8 +13,8 @@
|
||||
@v3 = alias bitcast (i32* @v1 to i16*)
|
||||
; CHECK: @v3 = alias bitcast (i32* @v1 to i16*)
|
||||
|
||||
@v4 = alias getelementptr ([1 x i32]* @v2, i32 0, i32 0)
|
||||
; CHECK: @v4 = alias getelementptr inbounds ([1 x i32]* @v2, i32 0, i32 0)
|
||||
@v4 = alias getelementptr ([1 x i32], [1 x i32]* @v2, i32 0, i32 0)
|
||||
; CHECK: @v4 = alias getelementptr inbounds ([1 x i32], [1 x i32]* @v2, i32 0, i32 0)
|
||||
|
||||
@v5 = alias i32 addrspace(2)* addrspacecast (i32 addrspace(0)* @v1 to i32 addrspace(2)*)
|
||||
; CHECK: @v5 = alias addrspacecast (i32* @v1 to i32 addrspace(2)*)
|
||||
|
@ -1,7 +1,7 @@
|
||||
; RUN: verify-uselistorder < %s
|
||||
|
||||
@a = global [4 x i1] [i1 0, i1 1, i1 0, i1 1]
|
||||
@b = alias i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)
|
||||
@b = alias i1* getelementptr ([4 x i1], [4 x i1]* @a, i64 0, i64 2)
|
||||
|
||||
; Check use-list order of constants used by globals.
|
||||
@glob1 = global i5 7
|
||||
@ -85,7 +85,7 @@ entry:
|
||||
|
||||
define i1 @loada() {
|
||||
entry:
|
||||
%a = load i1, i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)
|
||||
%a = load i1, i1* getelementptr ([4 x i1], [4 x i1]* @a, i64 0, i64 2)
|
||||
ret i1 %a
|
||||
}
|
||||
|
||||
@ -134,11 +134,11 @@ loop2:
|
||||
|
||||
; Check that block addresses work.
|
||||
@ba1 = constant i8* blockaddress (@bafunc1, %bb)
|
||||
@ba2 = constant i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
@ba3 = constant i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
@ba2 = constant i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
@ba3 = constant i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
|
||||
define i8* @babefore() {
|
||||
ret i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
ret i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||
bb1:
|
||||
ret i8* blockaddress (@bafunc1, %bb)
|
||||
bb2:
|
||||
|
@ -16,11 +16,11 @@ entry:
|
||||
%0 = load double, double* %d.addr, align 8
|
||||
%1 = load double, double* %d.addr, align 8
|
||||
%conv = fptoui double %1 to i64
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8]* @.str, i32 0, i32 0), double %0, i64 %conv)
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i32 0, i32 0), double %0, i64 %conv)
|
||||
%2 = load double, double* %d.addr, align 8
|
||||
%3 = load double, double* %d.addr, align 8
|
||||
%conv1 = fptoui double %3 to i32
|
||||
%call2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([8 x i8]* @.str1, i32 0, i32 0), double %2, i32 %conv1)
|
||||
%call2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str1, i32 0, i32 0), double %2, i32 %conv1)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -37,12 +37,12 @@ entry:
|
||||
%conv = fpext float %0 to double
|
||||
%1 = load float, float* %f.addr, align 4
|
||||
%conv1 = fptoui float %1 to i64
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([8 x i8]* @.str2, i32 0, i32 0), double %conv, i64 %conv1)
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str2, i32 0, i32 0), double %conv, i64 %conv1)
|
||||
%2 = load float, float* %f.addr, align 4
|
||||
%conv2 = fpext float %2 to double
|
||||
%3 = load float, float* %f.addr, align 4
|
||||
%conv3 = fptoui float %3 to i32
|
||||
%call4 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([7 x i8]* @.str3, i32 0, i32 0), double %conv2, i32 %conv3)
|
||||
%call4 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str3, i32 0, i32 0), double %conv2, i32 %conv3)
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -133,7 +133,7 @@ entry:
|
||||
store <4 x i32> %y, <4 x i32>* %y.addr, align 16
|
||||
%0 = load i32, i32* %x.addr, align 4
|
||||
%1 = load <4 x i32>, <4 x i32>* %y.addr, align 16
|
||||
call void (i8*, ...)* @foo(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i32 %0, <4 x i32> %1)
|
||||
call void (i8*, ...)* @foo(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %0, <4 x i32> %1)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -186,6 +186,6 @@ entry:
|
||||
%1 = load i32, i32* %x.addr, align 4
|
||||
%2 = bitcast %struct.s41* %s41 to i128*
|
||||
%3 = load i128, i128* %2, align 1
|
||||
call void (i8*, ...)* @foo2(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i32 %1, i128 %3)
|
||||
call void (i8*, ...)* @foo2(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %1, i128 %3)
|
||||
ret void
|
||||
}
|
||||
|
@ -319,13 +319,13 @@ define void @atomic_store_relaxed_64(i64* %p, i32 %off32, i64 %val) {
|
||||
|
||||
define i32 @next_id() nounwind optsize ssp align 2 {
|
||||
entry:
|
||||
%0 = atomicrmw add i32* getelementptr inbounds (%"class.X::Atomic"* @counter, i64 0, i32 0, i32 0), i32 1 seq_cst
|
||||
%0 = atomicrmw add i32* getelementptr inbounds (%"class.X::Atomic", %"class.X::Atomic"* @counter, i64 0, i32 0, i32 0), i32 1 seq_cst
|
||||
%add.i = add i32 %0, 1
|
||||
%tobool = icmp eq i32 %add.i, 0
|
||||
br i1 %tobool, label %if.else, label %return
|
||||
|
||||
if.else: ; preds = %entry
|
||||
%1 = atomicrmw add i32* getelementptr inbounds (%"class.X::Atomic"* @counter, i64 0, i32 0, i32 0), i32 1 seq_cst
|
||||
%1 = atomicrmw add i32* getelementptr inbounds (%"class.X::Atomic", %"class.X::Atomic"* @counter, i64 0, i32 0, i32 0), i32 1 seq_cst
|
||||
%add.i2 = add i32 %1, 1
|
||||
br label %return
|
||||
|
||||
|
@ -15,8 +15,8 @@
|
||||
; CHECK-NOT: AdrpAddStr
|
||||
define i32 @pptp_wan_init() {
|
||||
entry:
|
||||
store i32* null, i32** getelementptr inbounds (%struct.anon* @pptp_wan_head, i64 0, i32 0), align 8
|
||||
store i32** getelementptr inbounds (%struct.anon* @pptp_wan_head, i64 0, i32 0), i32*** getelementptr inbounds (%struct.anon* @pptp_wan_head, i64 0, i32 1), align 8
|
||||
store i32* null, i32** getelementptr inbounds (%struct.anon, %struct.anon* @pptp_wan_head, i64 0, i32 0), align 8
|
||||
store i32** getelementptr inbounds (%struct.anon, %struct.anon* @pptp_wan_head, i64 0, i32 0), i32*** getelementptr inbounds (%struct.anon, %struct.anon* @pptp_wan_head, i64 0, i32 1), align 8
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ entry:
|
||||
; CHECK: add x[[REG3:[0-9]+]], x[[REG1]], x[[REG2]]
|
||||
; CHECK: ldr w0, [x[[REG3]]]
|
||||
; CHECK: ret
|
||||
%0 = load i32, i32* getelementptr inbounds ([5001 x i32]* @sortlist, i32 0, i64 5000), align 4
|
||||
%0 = load i32, i32* getelementptr inbounds ([5001 x i32], [5001 x i32]* @sortlist, i32 0, i64 5000), align 4
|
||||
ret i32 %0
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ entry:
|
||||
; CHECK: add x[[REG3:[0-9]+]], x[[REG1]], x[[REG2]]
|
||||
; CHECK: ldr x0, [x[[REG3]]]
|
||||
; CHECK: ret
|
||||
%0 = load i64, i64* getelementptr inbounds ([5001 x i64]* @sortlist2, i32 0, i64 5000), align 4
|
||||
%0 = load i64, i64* getelementptr inbounds ([5001 x i64], [5001 x i64]* @sortlist2, i32 0, i64 5000), align 4
|
||||
ret i64 %0
|
||||
}
|
||||
|
||||
|
@ -11,7 +11,7 @@ define void @t1() {
|
||||
; ARM64: movz x2, #0x50
|
||||
; ARM64: uxtb w1, w9
|
||||
; ARM64: bl _memset
|
||||
call void @llvm.memset.p0i8.i64(i8* getelementptr inbounds ([80 x i8]* @message, i32 0, i32 0), i8 0, i64 80, i32 16, i1 false)
|
||||
call void @llvm.memset.p0i8.i64(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @message, i32 0, i32 0), i8 0, i64 80, i32 16, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ define void @t2() {
|
||||
; ARM64: add x1, x8, _message@PAGEOFF
|
||||
; ARM64: movz x2, #0x50
|
||||
; ARM64: bl _memcpy
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8]* @message, i32 0, i32 0), i64 80, i32 16, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8], [80 x i8]* @message, i32 0, i32 0), i64 80, i32 16, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ define void @t3() {
|
||||
; ARM64: add x1, x8, _message@PAGEOFF
|
||||
; ARM64: movz x2, #0x14
|
||||
; ARM64: bl _memmove
|
||||
call void @llvm.memmove.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8]* @message, i32 0, i32 0), i64 20, i32 16, i1 false)
|
||||
call void @llvm.memmove.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8], [80 x i8]* @message, i32 0, i32 0), i64 20, i32 16, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -58,7 +58,7 @@ define void @t4() {
|
||||
; ARM64: ldrb w11, [x9, #16]
|
||||
; ARM64: strb w11, [x8, #16]
|
||||
; ARM64: ret
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8]* @message, i32 0, i32 0), i64 17, i32 16, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8], [80 x i8]* @message, i32 0, i32 0), i64 17, i32 16, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ define void @t5() {
|
||||
; ARM64: ldrb w11, [x9, #16]
|
||||
; ARM64: strb w11, [x8, #16]
|
||||
; ARM64: ret
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8]* @message, i32 0, i32 0), i64 17, i32 8, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8], [80 x i8]* @message, i32 0, i32 0), i64 17, i32 8, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@ define void @t6() {
|
||||
; ARM64: ldrb w10, [x9, #8]
|
||||
; ARM64: strb w10, [x8, #8]
|
||||
; ARM64: ret
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8]* @message, i32 0, i32 0), i64 9, i32 4, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8], [80 x i8]* @message, i32 0, i32 0), i64 9, i32 4, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -111,7 +111,7 @@ define void @t7() {
|
||||
; ARM64: ldrb w10, [x9, #6]
|
||||
; ARM64: strb w10, [x8, #6]
|
||||
; ARM64: ret
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8]* @message, i32 0, i32 0), i64 7, i32 2, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8], [80 x i8]* @message, i32 0, i32 0), i64 7, i32 2, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -130,7 +130,7 @@ define void @t8() {
|
||||
; ARM64: ldrb w10, [x9, #3]
|
||||
; ARM64: strb w10, [x8, #3]
|
||||
; ARM64: ret
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8]* @message, i32 0, i32 0), i64 4, i32 1, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @temp, i32 0, i32 0), i8* getelementptr inbounds ([80 x i8], [80 x i8]* @message, i32 0, i32 0), i64 4, i32 1, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ define i32 @main() nounwind ssp {
|
||||
entry:
|
||||
%retval = alloca i32, align 4
|
||||
store i32 0, i32* %retval
|
||||
%call = call i32 @puts(i8* getelementptr inbounds ([7 x i8]* @.str, i32 0, i32 0))
|
||||
%call = call i32 @puts(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i32 0, i32 0))
|
||||
ret i32 %call
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ entry:
|
||||
; CHECK: strh [[REG1]], [x[[BASEREG2]], #8]
|
||||
; CHECK: ldr [[REG2:x[0-9]+]],
|
||||
; CHECK: str [[REG2]],
|
||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* getelementptr inbounds (%struct.x* @dst, i32 0, i32 0), i8* getelementptr inbounds (%struct.x* @src, i32 0, i32 0), i32 11, i32 8, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* getelementptr inbounds (%struct.x, %struct.x* @dst, i32 0, i32 0), i8* getelementptr inbounds (%struct.x, %struct.x* @src, i32 0, i32 0), i32 11, i32 8, i1 false)
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ entry:
|
||||
; CHECK: stur [[DEST]], [x0, #15]
|
||||
; CHECK: ldr [[DEST:q[0-9]+]], [x[[BASEREG]]]
|
||||
; CHECK: str [[DEST]], [x0]
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([31 x i8]* @.str1, i64 0, i64 0), i64 31, i32 1, i1 false)
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str1, i64 0, i64 0), i64 31, i32 1, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ entry:
|
||||
; CHECK: str [[REG3]], [x0, #32]
|
||||
; CHECK: ldp [[DEST1:q[0-9]+]], [[DEST2:q[0-9]+]], [x{{[0-9]+}}]
|
||||
; CHECK: stp [[DEST1]], [[DEST2]], [x0]
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([36 x i8]* @.str2, i64 0, i64 0), i64 36, i32 1, i1 false)
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str2, i64 0, i64 0), i64 36, i32 1, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ entry:
|
||||
; CHECK: str [[REG4]], [x0, #16]
|
||||
; CHECK: ldr [[DEST:q[0-9]+]], [x[[BASEREG]]]
|
||||
; CHECK: str [[DEST]], [x0]
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([24 x i8]* @.str3, i64 0, i64 0), i64 24, i32 1, i1 false)
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str3, i64 0, i64 0), i64 24, i32 1, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@ entry:
|
||||
; CHECK: strh [[REG5]], [x0, #16]
|
||||
; CHECK: ldr [[REG6:q[0-9]+]], [x{{[0-9]+}}]
|
||||
; CHECK: str [[REG6]], [x0]
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([18 x i8]* @.str4, i64 0, i64 0), i64 18, i32 1, i1 false)
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str4, i64 0, i64 0), i64 18, i32 1, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ entry:
|
||||
; CHECK: movz [[REG8:w[0-9]+]],
|
||||
; CHECK: movk [[REG8]],
|
||||
; CHECK: str [[REG8]], [x0]
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([7 x i8]* @.str5, i64 0, i64 0), i64 7, i32 1, i1 false)
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %C, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str5, i64 0, i64 0), i64 7, i32 1, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ entry:
|
||||
; CHECK: stur [[REG9]], [x{{[0-9]+}}, #6]
|
||||
; CHECK: ldr
|
||||
; CHECK: str
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([512 x i8]* @spool.splbuf, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8]* @.str6, i64 0, i64 0), i64 14, i32 1, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @spool.splbuf, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str6, i64 0, i64 0), i64 14, i32 1, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ define void @foo() nounwind {
|
||||
; CHECK: foo:
|
||||
; CHECK: adrp x{{[0-9]}}, .L.str
|
||||
; CHECK-NEXT: add x{{[0-9]}}, x{{[0-9]}}, :lo12:.L.str
|
||||
tail call void @bar(i8* getelementptr inbounds ([6 x i8]* @.str, i64 0, i64 0))
|
||||
tail call void @bar(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0))
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -270,7 +270,7 @@ define <1 x i64> @fct0() nounwind readonly ssp {
|
||||
entry:
|
||||
; CHECK-LABEL: fct0:
|
||||
; CHECK: ldur {{d[0-9]+}}, [{{x[0-9]+}}, #3]
|
||||
%0 = load <1 x i64>, <1 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <1 x i64>*), align 8
|
||||
%0 = load <1 x i64>, <1 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <1 x i64>*), align 8
|
||||
ret <1 x i64> %0
|
||||
}
|
||||
|
||||
@ -278,7 +278,7 @@ define <2 x i32> @fct1() nounwind readonly ssp {
|
||||
entry:
|
||||
; CHECK-LABEL: fct1:
|
||||
; CHECK: ldur {{d[0-9]+}}, [{{x[0-9]+}}, #3]
|
||||
%0 = load <2 x i32>, <2 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <2 x i32>*), align 8
|
||||
%0 = load <2 x i32>, <2 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <2 x i32>*), align 8
|
||||
ret <2 x i32> %0
|
||||
}
|
||||
|
||||
@ -286,7 +286,7 @@ define <4 x i16> @fct2() nounwind readonly ssp {
|
||||
entry:
|
||||
; CHECK-LABEL: fct2:
|
||||
; CHECK: ldur {{d[0-9]+}}, [{{x[0-9]+}}, #3]
|
||||
%0 = load <4 x i16>, <4 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <4 x i16>*), align 8
|
||||
%0 = load <4 x i16>, <4 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <4 x i16>*), align 8
|
||||
ret <4 x i16> %0
|
||||
}
|
||||
|
||||
@ -294,7 +294,7 @@ define <8 x i8> @fct3() nounwind readonly ssp {
|
||||
entry:
|
||||
; CHECK-LABEL: fct3:
|
||||
; CHECK: ldur {{d[0-9]+}}, [{{x[0-9]+}}, #3]
|
||||
%0 = load <8 x i8>, <8 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <8 x i8>*), align 8
|
||||
%0 = load <8 x i8>, <8 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <8 x i8>*), align 8
|
||||
ret <8 x i8> %0
|
||||
}
|
||||
|
||||
@ -302,7 +302,7 @@ define <2 x i64> @fct4() nounwind readonly ssp {
|
||||
entry:
|
||||
; CHECK-LABEL: fct4:
|
||||
; CHECK: ldur {{q[0-9]+}}, [{{x[0-9]+}}, #3]
|
||||
%0 = load <2 x i64>, <2 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <2 x i64>*), align 16
|
||||
%0 = load <2 x i64>, <2 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <2 x i64>*), align 16
|
||||
ret <2 x i64> %0
|
||||
}
|
||||
|
||||
@ -310,7 +310,7 @@ define <4 x i32> @fct5() nounwind readonly ssp {
|
||||
entry:
|
||||
; CHECK-LABEL: fct5:
|
||||
; CHECK: ldur {{q[0-9]+}}, [{{x[0-9]+}}, #3]
|
||||
%0 = load <4 x i32>, <4 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <4 x i32>*), align 16
|
||||
%0 = load <4 x i32>, <4 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <4 x i32>*), align 16
|
||||
ret <4 x i32> %0
|
||||
}
|
||||
|
||||
@ -318,7 +318,7 @@ define <8 x i16> @fct6() nounwind readonly ssp {
|
||||
entry:
|
||||
; CHECK-LABEL: fct6:
|
||||
; CHECK: ldur {{q[0-9]+}}, [{{x[0-9]+}}, #3]
|
||||
%0 = load <8 x i16>, <8 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <8 x i16>*), align 16
|
||||
%0 = load <8 x i16>, <8 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <8 x i16>*), align 16
|
||||
ret <8 x i16> %0
|
||||
}
|
||||
|
||||
@ -326,7 +326,7 @@ define <16 x i8> @fct7() nounwind readonly ssp {
|
||||
entry:
|
||||
; CHECK-LABEL: fct7:
|
||||
; CHECK: ldur {{q[0-9]+}}, [{{x[0-9]+}}, #3]
|
||||
%0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <16 x i8>*), align 16
|
||||
%0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <16 x i8>*), align 16
|
||||
ret <16 x i8> %0
|
||||
}
|
||||
|
||||
@ -335,8 +335,8 @@ entry:
|
||||
; CHECK-LABEL: fct8:
|
||||
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
||||
%0 = load <1 x i64>, <1 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <1 x i64>*), align 8
|
||||
store <1 x i64> %0, <1 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 4) to <1 x i64>*), align 8
|
||||
%0 = load <1 x i64>, <1 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <1 x i64>*), align 8
|
||||
store <1 x i64> %0, <1 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 4) to <1 x i64>*), align 8
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -345,8 +345,8 @@ entry:
|
||||
; CHECK-LABEL: fct9:
|
||||
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
||||
%0 = load <2 x i32>, <2 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <2 x i32>*), align 8
|
||||
store <2 x i32> %0, <2 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 4) to <2 x i32>*), align 8
|
||||
%0 = load <2 x i32>, <2 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <2 x i32>*), align 8
|
||||
store <2 x i32> %0, <2 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 4) to <2 x i32>*), align 8
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -355,8 +355,8 @@ entry:
|
||||
; CHECK-LABEL: fct10:
|
||||
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
||||
%0 = load <4 x i16>, <4 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <4 x i16>*), align 8
|
||||
store <4 x i16> %0, <4 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 4) to <4 x i16>*), align 8
|
||||
%0 = load <4 x i16>, <4 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <4 x i16>*), align 8
|
||||
store <4 x i16> %0, <4 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 4) to <4 x i16>*), align 8
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -365,8 +365,8 @@ entry:
|
||||
; CHECK-LABEL: fct11:
|
||||
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
||||
%0 = load <8 x i8>, <8 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <8 x i8>*), align 8
|
||||
store <8 x i8> %0, <8 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 4) to <8 x i8>*), align 8
|
||||
%0 = load <8 x i8>, <8 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <8 x i8>*), align 8
|
||||
store <8 x i8> %0, <8 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 4) to <8 x i8>*), align 8
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -375,8 +375,8 @@ entry:
|
||||
; CHECK-LABEL: fct12:
|
||||
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
||||
%0 = load <2 x i64>, <2 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <2 x i64>*), align 16
|
||||
store <2 x i64> %0, <2 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 4) to <2 x i64>*), align 16
|
||||
%0 = load <2 x i64>, <2 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <2 x i64>*), align 16
|
||||
store <2 x i64> %0, <2 x i64>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 4) to <2 x i64>*), align 16
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -385,8 +385,8 @@ entry:
|
||||
; CHECK-LABEL: fct13:
|
||||
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
||||
%0 = load <4 x i32>, <4 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <4 x i32>*), align 16
|
||||
store <4 x i32> %0, <4 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 4) to <4 x i32>*), align 16
|
||||
%0 = load <4 x i32>, <4 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <4 x i32>*), align 16
|
||||
store <4 x i32> %0, <4 x i32>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 4) to <4 x i32>*), align 16
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -395,8 +395,8 @@ entry:
|
||||
; CHECK-LABEL: fct14:
|
||||
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
||||
%0 = load <8 x i16>, <8 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <8 x i16>*), align 16
|
||||
store <8 x i16> %0, <8 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 4) to <8 x i16>*), align 16
|
||||
%0 = load <8 x i16>, <8 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <8 x i16>*), align 16
|
||||
store <8 x i16> %0, <8 x i16>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 4) to <8 x i16>*), align 16
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -405,8 +405,8 @@ entry:
|
||||
; CHECK-LABEL: fct15:
|
||||
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
||||
%0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 3) to <16 x i8>*), align 16
|
||||
store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8]* @str, i64 0, i64 4) to <16 x i8>*), align 16
|
||||
%0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 3) to <16 x i8>*), align 16
|
||||
store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr inbounds ([63 x i8], [63 x i8]* @str, i64 0, i64 4) to <16 x i8>*), align 16
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -30,12 +30,12 @@ invoke.cont7:
|
||||
unreachable
|
||||
|
||||
if.end50.thread:
|
||||
tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 125)
|
||||
tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 128)
|
||||
tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 125)
|
||||
tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 128)
|
||||
unreachable
|
||||
|
||||
invoke.cont33:
|
||||
tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 119)
|
||||
tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 119)
|
||||
unreachable
|
||||
|
||||
invoke.cont41:
|
||||
@ -51,7 +51,7 @@ lpad40:
|
||||
br label %finally.catchall
|
||||
|
||||
finally.catchall:
|
||||
tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @.str1, i64 0, i64 0), i32 125)
|
||||
tail call void (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str1, i64 0, i64 0), i32 125)
|
||||
unreachable
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ main_:
|
||||
%DHSelect = select i1 %tmp8, i32 %tmp9, i32 %tmp10
|
||||
store i32 %DHSelect, i32* %i32X, align 4
|
||||
%tmp15 = load i32, i32* %i32X, align 4
|
||||
%tmp17 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8]* @.str2, i32 0, i32 0), i32 %tmp15)
|
||||
%tmp17 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str2, i32 0, i32 0), i32 %tmp15)
|
||||
ret i32 0
|
||||
|
||||
; CHECK: main:
|
||||
|
@ -10,25 +10,25 @@ target triple = "arm64-apple-ios7.0.0"
|
||||
; Function Attrs: nounwind ssp
|
||||
define internal void @initialize() #0 {
|
||||
%1 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %1, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 0), align 4
|
||||
store i32 %1, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 0), align 4
|
||||
%2 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %2, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 0), align 4
|
||||
store i32 %2, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 0), align 4
|
||||
%3 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %3, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 1), align 4
|
||||
store i32 %3, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 1), align 4
|
||||
%4 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %4, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 1), align 4
|
||||
store i32 %4, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 1), align 4
|
||||
%5 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %5, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 2), align 4
|
||||
store i32 %5, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 2), align 4
|
||||
%6 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %6, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 2), align 4
|
||||
store i32 %6, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 2), align 4
|
||||
%7 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %7, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 3), align 4
|
||||
store i32 %7, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 3), align 4
|
||||
%8 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %8, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 3), align 4
|
||||
store i32 %8, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 3), align 4
|
||||
%9 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %9, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 4), align 4
|
||||
store i32 %9, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 4), align 4
|
||||
%10 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
||||
store i32 %10, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 4), align 4
|
||||
store i32 %10, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 4), align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -36,32 +36,32 @@ declare i32 @calc(...)
|
||||
|
||||
; Function Attrs: nounwind ssp
|
||||
define internal void @calculate() #0 {
|
||||
%1 = load i32, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 0), align 4
|
||||
%2 = load i32, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 0), align 4
|
||||
%1 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 0), align 4
|
||||
%2 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 0), align 4
|
||||
%3 = mul nsw i32 %2, %1
|
||||
store i32 %3, i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 0), align 4
|
||||
%4 = load i32, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 1), align 4
|
||||
%5 = load i32, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 1), align 4
|
||||
store i32 %3, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @foo, i64 0, i64 0), align 4
|
||||
%4 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 1), align 4
|
||||
%5 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 1), align 4
|
||||
%6 = mul nsw i32 %5, %4
|
||||
store i32 %6, i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 1), align 4
|
||||
%7 = load i32, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 2), align 4
|
||||
%8 = load i32, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 2), align 4
|
||||
store i32 %6, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @foo, i64 0, i64 1), align 4
|
||||
%7 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 2), align 4
|
||||
%8 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 2), align 4
|
||||
%9 = mul nsw i32 %8, %7
|
||||
store i32 %9, i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 2), align 4
|
||||
%10 = load i32, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 3), align 4
|
||||
%11 = load i32, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 3), align 4
|
||||
store i32 %9, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @foo, i64 0, i64 2), align 4
|
||||
%10 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 3), align 4
|
||||
%11 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 3), align 4
|
||||
%12 = mul nsw i32 %11, %10
|
||||
store i32 %12, i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 3), align 4
|
||||
%13 = load i32, i32* getelementptr inbounds ([5 x i32]* @bar, i64 0, i64 4), align 4
|
||||
%14 = load i32, i32* getelementptr inbounds ([5 x i32]* @baz, i64 0, i64 4), align 4
|
||||
store i32 %12, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @foo, i64 0, i64 3), align 4
|
||||
%13 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @bar, i64 0, i64 4), align 4
|
||||
%14 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @baz, i64 0, i64 4), align 4
|
||||
%15 = mul nsw i32 %14, %13
|
||||
store i32 %15, i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 4), align 4
|
||||
store i32 %15, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @foo, i64 0, i64 4), align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone ssp
|
||||
define internal i32* @returnFoo() #1 {
|
||||
ret i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 0)
|
||||
ret i32* getelementptr inbounds ([5 x i32], [5 x i32]* @foo, i64 0, i64 0)
|
||||
}
|
||||
|
||||
;CHECK: .type _MergedGlobals,@object // @_MergedGlobals
|
||||
|
@ -13,7 +13,7 @@ define void @test_inlineasm_globaladdress() {
|
||||
; CHECK-LABEL: test_inlineasm_globaladdress_offset:
|
||||
; CHECK: b {{_?}}test_symbol+4
|
||||
define void @test_inlineasm_globaladdress_offset() {
|
||||
call void asm sideeffect "b $0", "i"(void ()* bitcast (i8* getelementptr (i8* bitcast (void ()* @test_symbol to i8*), i64 4) to void ()*))
|
||||
call void asm sideeffect "b $0", "i"(void ()* bitcast (i8* getelementptr (i8, i8* bitcast (void ()* @test_symbol to i8*), i64 4) to void ()*))
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -15,13 +15,13 @@ define void @test_i16_2cmp_signed_1() {
|
||||
; CHECK-NOT: cmp
|
||||
; CHECK: b.ne
|
||||
entry:
|
||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 1), align 2
|
||||
%1 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 2), align 2
|
||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16, %struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 1), align 2
|
||||
%1 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16, %struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 2), align 2
|
||||
%cmp = icmp sgt i16 %0, %1
|
||||
br i1 %cmp, label %if.then, label %if.else
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 0), align 2
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_signed_i16, %struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.else: ; preds = %entry
|
||||
@ -29,7 +29,7 @@ if.else: ; preds = %entry
|
||||
br i1 %cmp5, label %if.then7, label %if.end8
|
||||
|
||||
if.then7: ; preds = %if.else
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 0), align 2
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_signed_i16, %struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||
@ -43,13 +43,13 @@ define void @test_i16_2cmp_signed_2() {
|
||||
; CHECK-NOT: cmp
|
||||
; CHECK: b.ge
|
||||
entry:
|
||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 1), align 2
|
||||
%1 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 2), align 2
|
||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16, %struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 1), align 2
|
||||
%1 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16, %struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 2), align 2
|
||||
%cmp = icmp sgt i16 %0, %1
|
||||
br i1 %cmp, label %if.then, label %if.else
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 0), align 2
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_signed_i16, %struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.else: ; preds = %entry
|
||||
@ -57,7 +57,7 @@ if.else: ; preds = %entry
|
||||
br i1 %cmp5, label %if.then7, label %if.end8
|
||||
|
||||
if.then7: ; preds = %if.else
|
||||
store i16 %1, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 0), align 2
|
||||
store i16 %1, i16* getelementptr inbounds (%struct.s_signed_i16, %struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||
@ -71,13 +71,13 @@ define void @test_i16_2cmp_unsigned_1() {
|
||||
; CHECK-NOT: cmp
|
||||
; CHECK: b.ne
|
||||
entry:
|
||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 1), align 2
|
||||
%1 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 2), align 2
|
||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16, %struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 1), align 2
|
||||
%1 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16, %struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 2), align 2
|
||||
%cmp = icmp ugt i16 %0, %1
|
||||
br i1 %cmp, label %if.then, label %if.else
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 0), align 2
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_unsigned_i16, %struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.else: ; preds = %entry
|
||||
@ -85,7 +85,7 @@ if.else: ; preds = %entry
|
||||
br i1 %cmp5, label %if.then7, label %if.end8
|
||||
|
||||
if.then7: ; preds = %if.else
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 0), align 2
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_unsigned_i16, %struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||
@ -99,13 +99,13 @@ define void @test_i16_2cmp_unsigned_2() {
|
||||
; CHECK-NOT: cmp
|
||||
; CHECK: b.hs
|
||||
entry:
|
||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 1), align 2
|
||||
%1 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 2), align 2
|
||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16, %struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 1), align 2
|
||||
%1 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16, %struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 2), align 2
|
||||
%cmp = icmp ugt i16 %0, %1
|
||||
br i1 %cmp, label %if.then, label %if.else
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 0), align 2
|
||||
store i16 %0, i16* getelementptr inbounds (%struct.s_unsigned_i16, %struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.else: ; preds = %entry
|
||||
@ -113,7 +113,7 @@ if.else: ; preds = %entry
|
||||
br i1 %cmp5, label %if.then7, label %if.end8
|
||||
|
||||
if.then7: ; preds = %if.else
|
||||
store i16 %1, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 0), align 2
|
||||
store i16 %1, i16* getelementptr inbounds (%struct.s_unsigned_i16, %struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||
@ -136,13 +136,13 @@ define void @test_i8_2cmp_signed_1() {
|
||||
; CHECK-NOT: cmp
|
||||
; CHECK: b.ne
|
||||
entry:
|
||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 1), align 2
|
||||
%1 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 2), align 2
|
||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8, %struct.s_signed_i8* @cost_s, i64 0, i32 1), align 2
|
||||
%1 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8, %struct.s_signed_i8* @cost_s, i64 0, i32 2), align 2
|
||||
%cmp = icmp sgt i8 %0, %1
|
||||
br i1 %cmp, label %if.then, label %if.else
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 0), align 2
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_signed_i8, %struct.s_signed_i8* @cost_s, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.else: ; preds = %entry
|
||||
@ -150,7 +150,7 @@ if.else: ; preds = %entry
|
||||
br i1 %cmp5, label %if.then7, label %if.end8
|
||||
|
||||
if.then7: ; preds = %if.else
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 0), align 2
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_signed_i8, %struct.s_signed_i8* @cost_s, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||
@ -164,13 +164,13 @@ define void @test_i8_2cmp_signed_2() {
|
||||
; CHECK-NOT: cmp
|
||||
; CHECK: b.ge
|
||||
entry:
|
||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 1), align 2
|
||||
%1 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 2), align 2
|
||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8, %struct.s_signed_i8* @cost_s, i64 0, i32 1), align 2
|
||||
%1 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8, %struct.s_signed_i8* @cost_s, i64 0, i32 2), align 2
|
||||
%cmp = icmp sgt i8 %0, %1
|
||||
br i1 %cmp, label %if.then, label %if.else
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 0), align 2
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_signed_i8, %struct.s_signed_i8* @cost_s, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.else: ; preds = %entry
|
||||
@ -178,7 +178,7 @@ if.else: ; preds = %entry
|
||||
br i1 %cmp5, label %if.then7, label %if.end8
|
||||
|
||||
if.then7: ; preds = %if.else
|
||||
store i8 %1, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 0), align 2
|
||||
store i8 %1, i8* getelementptr inbounds (%struct.s_signed_i8, %struct.s_signed_i8* @cost_s, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||
@ -192,13 +192,13 @@ define void @test_i8_2cmp_unsigned_1() {
|
||||
; CHECK-NOT: cmp
|
||||
; CHECK: b.ne
|
||||
entry:
|
||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 1), align 2
|
||||
%1 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 2), align 2
|
||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8, %struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 1), align 2
|
||||
%1 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8, %struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 2), align 2
|
||||
%cmp = icmp ugt i8 %0, %1
|
||||
br i1 %cmp, label %if.then, label %if.else
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 0), align 2
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_unsigned_i8, %struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.else: ; preds = %entry
|
||||
@ -206,7 +206,7 @@ if.else: ; preds = %entry
|
||||
br i1 %cmp5, label %if.then7, label %if.end8
|
||||
|
||||
if.then7: ; preds = %if.else
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 0), align 2
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_unsigned_i8, %struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||
@ -220,13 +220,13 @@ define void @test_i8_2cmp_unsigned_2() {
|
||||
; CHECK-NOT: cmp
|
||||
; CHECK: b.hs
|
||||
entry:
|
||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 1), align 2
|
||||
%1 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 2), align 2
|
||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8, %struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 1), align 2
|
||||
%1 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8, %struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 2), align 2
|
||||
%cmp = icmp ugt i8 %0, %1
|
||||
br i1 %cmp, label %if.then, label %if.else
|
||||
|
||||
if.then: ; preds = %entry
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 0), align 2
|
||||
store i8 %0, i8* getelementptr inbounds (%struct.s_unsigned_i8, %struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.else: ; preds = %entry
|
||||
@ -234,7 +234,7 @@ if.else: ; preds = %entry
|
||||
br i1 %cmp5, label %if.then7, label %if.end8
|
||||
|
||||
if.then7: ; preds = %if.else
|
||||
store i8 %1, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 0), align 2
|
||||
store i8 %1, i8* getelementptr inbounds (%struct.s_unsigned_i8, %struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 0), align 2
|
||||
br label %if.end8
|
||||
|
||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||
|
@ -10,7 +10,7 @@ define internal void @_ZN1B1iEv(%struct.B* %this) {
|
||||
entry:
|
||||
%tmp1 = getelementptr %struct.B, %struct.B* %this, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||
%tmp2 = load i32, i32* %tmp1 ; <i32> [#uses=1]
|
||||
%tmp4 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([7 x i8]* @str, i32 0, i32 0), i32 %tmp2 ) ; <i32> [#uses=0]
|
||||
%tmp4 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([7 x i8], [7 x i8]* @str, i32 0, i32 0), i32 %tmp2 ) ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
||||
@ -20,7 +20,7 @@ define internal void @_ZN1B1jEv(%struct.B* %this) {
|
||||
entry:
|
||||
%tmp1 = getelementptr %struct.B, %struct.B* %this, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||
%tmp2 = load i32, i32* %tmp1 ; <i32> [#uses=1]
|
||||
%tmp4 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([7 x i8]* @str1, i32 0, i32 0), i32 %tmp2 ) ; <i32> [#uses=0]
|
||||
%tmp4 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([7 x i8], [7 x i8]* @str1, i32 0, i32 0), i32 %tmp2 ) ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -9,15 +9,15 @@ target triple = "arm-apple-darwin8"
|
||||
|
||||
define fastcc void @EvaluateDevelopment() {
|
||||
entry:
|
||||
%tmp7 = load i64, i64* getelementptr (%struct.CHESS_POSITION* @search, i32 0, i32 7) ; <i64> [#uses=1]
|
||||
%tmp50 = load i64, i64* getelementptr (%struct.CHESS_POSITION* @search, i32 0, i32 0) ; <i64> [#uses=1]
|
||||
%tmp52 = load i64, i64* getelementptr (%struct.CHESS_POSITION* @search, i32 0, i32 1) ; <i64> [#uses=1]
|
||||
%tmp7 = load i64, i64* getelementptr (%struct.CHESS_POSITION, %struct.CHESS_POSITION* @search, i32 0, i32 7) ; <i64> [#uses=1]
|
||||
%tmp50 = load i64, i64* getelementptr (%struct.CHESS_POSITION, %struct.CHESS_POSITION* @search, i32 0, i32 0) ; <i64> [#uses=1]
|
||||
%tmp52 = load i64, i64* getelementptr (%struct.CHESS_POSITION, %struct.CHESS_POSITION* @search, i32 0, i32 1) ; <i64> [#uses=1]
|
||||
%tmp53 = or i64 %tmp52, %tmp50 ; <i64> [#uses=1]
|
||||
%tmp57.b = load i1, i1* @rank_mask.1.b ; <i1> [#uses=1]
|
||||
%tmp57 = select i1 %tmp57.b, i64 71776119061217280, i64 0 ; <i64> [#uses=1]
|
||||
%tmp58 = and i64 %tmp57, %tmp7 ; <i64> [#uses=1]
|
||||
%tmp59 = lshr i64 %tmp58, 8 ; <i64> [#uses=1]
|
||||
%tmp63 = load i64, i64* getelementptr ([8 x i64]* @file_mask, i32 0, i32 4) ; <i64> [#uses=1]
|
||||
%tmp63 = load i64, i64* getelementptr ([8 x i64], [8 x i64]* @file_mask, i32 0, i32 4) ; <i64> [#uses=1]
|
||||
%tmp64 = or i64 %tmp63, 0 ; <i64> [#uses=1]
|
||||
%tmp65 = and i64 %tmp59, %tmp53 ; <i64> [#uses=1]
|
||||
%tmp66 = and i64 %tmp65, %tmp64 ; <i64> [#uses=1]
|
||||
|
@ -93,7 +93,7 @@ cond_true1272: ; preds = %cond_next1267
|
||||
%tmp42.i348 = sub i32 0, %tmp2930.i ; <i32> [#uses=1]
|
||||
%tmp45.i = getelementptr %struct.TestObj, %struct.TestObj* %tmp1273, i32 0, i32 0 ; <i8**> [#uses=2]
|
||||
%tmp48.i = load i8*, i8** %tmp45.i ; <i8*> [#uses=1]
|
||||
%tmp50.i350 = call i32 (i8*, i8*, ...)* @sprintf( i8* getelementptr ([256 x i8]* @Msg, i32 0, i32 0), i8* getelementptr ([48 x i8]* @.str53615, i32 0, i32 0), i8* null, i8** %tmp45.i, i8* %tmp48.i ) ; <i32> [#uses=0]
|
||||
%tmp50.i350 = call i32 (i8*, i8*, ...)* @sprintf( i8* getelementptr ([256 x i8], [256 x i8]* @Msg, i32 0, i32 0), i8* getelementptr ([48 x i8], [48 x i8]* @.str53615, i32 0, i32 0), i8* null, i8** %tmp45.i, i8* %tmp48.i ) ; <i32> [#uses=0]
|
||||
br i1 false, label %cond_true.i632.i, label %Ut_TraceMsg.exit648.i
|
||||
|
||||
cond_true.i632.i: ; preds = %cond_true1272
|
||||
|
@ -46,7 +46,7 @@ bb102.i: ; preds = %cond_next212.i
|
||||
cond_true110.i: ; preds = %bb102.i
|
||||
%tmp116.i = getelementptr i8*, i8** %argv_addr.2321.0.i, i32 2 ; <i8**> [#uses=1]
|
||||
%tmp117.i = load i8*, i8** %tmp116.i ; <i8*> [#uses=1]
|
||||
%tmp126425.i = call %struct.FILE* @fopen( i8* %tmp117.i, i8* getelementptr ([2 x i8]* @.str44, i32 0, i32 0) ) ; <%struct.FILE*> [#uses=0]
|
||||
%tmp126425.i = call %struct.FILE* @fopen( i8* %tmp117.i, i8* getelementptr ([2 x i8], [2 x i8]* @.str44, i32 0, i32 0) ) ; <%struct.FILE*> [#uses=0]
|
||||
ret i32 0
|
||||
|
||||
cond_next123.i: ; preds = %bb102.i
|
||||
|
@ -11,9 +11,9 @@ bb74.i: ; preds = %bb88.i, %bb74.i, %entry
|
||||
bb88.i: ; preds = %bb74.i
|
||||
br i1 false, label %mandel.exit, label %bb74.i
|
||||
mandel.exit: ; preds = %bb88.i
|
||||
%tmp2 = load volatile double, double* getelementptr ({ double, double }* @accum, i32 0, i32 0), align 8 ; <double> [#uses=1]
|
||||
%tmp2 = load volatile double, double* getelementptr ({ double, double }, { double, double }* @accum, i32 0, i32 0), align 8 ; <double> [#uses=1]
|
||||
%tmp23 = fptosi double %tmp2 to i32 ; <i32> [#uses=1]
|
||||
%tmp5 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i32 %tmp23 ) ; <i32> [#uses=0]
|
||||
%tmp5 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %tmp23 ) ; <i32> [#uses=0]
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ bb17.i: ; preds = %cond_next119.i
|
||||
cond_true53.i: ; preds = %bb17.i
|
||||
ret { i16, %struct.rnode* }* null
|
||||
cond_false99.i: ; preds = %bb17.i
|
||||
%malloccall = tail call i8* @malloc(i32 trunc (i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1** null, i32 1) to i64), i64 2) to i32))
|
||||
%malloccall = tail call i8* @malloc(i32 trunc (i64 mul nuw (i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64), i64 2) to i32))
|
||||
%tmp106.i = bitcast i8* %malloccall to %struct.ch_set*
|
||||
br i1 false, label %bb126.i, label %cond_next119.i
|
||||
cond_next119.i: ; preds = %cond_false99.i, %bb42
|
||||
|
@ -24,7 +24,7 @@ define void @main(i32 %argc, i8** %argv) noreturn {
|
||||
entry:
|
||||
br i1 false, label %cond_next48, label %cond_false674
|
||||
cond_next48: ; preds = %entry
|
||||
%tmp61 = call %struct.FILE* @fopen( i8* null, i8* getelementptr ([2 x i8]* @.str127, i32 0, i32 0) ) ; <%struct.FILE*> [#uses=2]
|
||||
%tmp61 = call %struct.FILE* @fopen( i8* null, i8* getelementptr ([2 x i8], [2 x i8]* @.str127, i32 0, i32 0) ) ; <%struct.FILE*> [#uses=2]
|
||||
br i1 false, label %bb220.i.i.i, label %bb62.preheader.i.i.i
|
||||
bb62.preheader.i.i.i: ; preds = %cond_next48
|
||||
ret void
|
||||
@ -53,7 +53,7 @@ bb177.i393.i: ; preds = %bb40.i.i
|
||||
bb192.i.i: ; preds = %bb177.i393.i
|
||||
ret void
|
||||
cond_false373.i.i: ; preds = %bb.i350.i
|
||||
%tmp376.i.i = call i32 @strcmp( i8* null, i8* getelementptr ([9 x i8]* @.str8115, i32 0, i32 0) ) ; <i32> [#uses=0]
|
||||
%tmp376.i.i = call i32 @strcmp( i8* null, i8* getelementptr ([9 x i8], [9 x i8]* @.str8115, i32 0, i32 0) ) ; <i32> [#uses=0]
|
||||
br i1 false, label %cond_true380.i.i, label %cond_next602.i.i
|
||||
cond_true380.i.i: ; preds = %cond_false373.i.i
|
||||
%tmp394.i418.i = add i32 %cell.0.i.i, 1 ; <i32> [#uses=1]
|
||||
@ -73,10 +73,10 @@ bb609.i.i: ; preds = %cond_next602.i.i
|
||||
br label %bb620.i.i
|
||||
bb620.i.i: ; preds = %bb620.i.i, %bb609.i.i
|
||||
%indvar166.i465.i = phi i32 [ %indvar.next167.i.i, %bb620.i.i ], [ 0, %bb609.i.i ] ; <i32> [#uses=1]
|
||||
%tmp640.i.i = call i32 (%struct.FILE*, i8*, ...)* @fscanf( %struct.FILE* %tmp61, i8* getelementptr ([5 x i8]* @.str584, i32 0, i32 0), [1024 x i8]* null ) ; <i32> [#uses=0]
|
||||
%tmp640.i.i = call i32 (%struct.FILE*, i8*, ...)* @fscanf( %struct.FILE* %tmp61, i8* getelementptr ([5 x i8], [5 x i8]* @.str584, i32 0, i32 0), [1024 x i8]* null ) ; <i32> [#uses=0]
|
||||
%tmp648.i.i = load i32, i32* null, align 4 ; <i32> [#uses=1]
|
||||
%tmp650.i468.i = icmp sgt i32 0, %tmp648.i.i ; <i1> [#uses=1]
|
||||
%tmp624.i469.i = call i32 (%struct.FILE*, i8*, ...)* @fscanf( %struct.FILE* %tmp61, i8* getelementptr ([5 x i8]* @.str584, i32 0, i32 0), [1024 x i8]* null ) ; <i32> [#uses=0]
|
||||
%tmp624.i469.i = call i32 (%struct.FILE*, i8*, ...)* @fscanf( %struct.FILE* %tmp61, i8* getelementptr ([5 x i8], [5 x i8]* @.str584, i32 0, i32 0), [1024 x i8]* null ) ; <i32> [#uses=0]
|
||||
%indvar.next167.i.i = add i32 %indvar166.i465.i, 1 ; <i32> [#uses=1]
|
||||
br i1 %tmp650.i468.i, label %bb653.i.i.loopexit, label %bb620.i.i
|
||||
bb653.i.i.loopexit: ; preds = %bb620.i.i
|
||||
|
@ -21,8 +21,8 @@ entry:
|
||||
br i1 false, label %init_orig_buffers.exit, label %cond_true.i29
|
||||
|
||||
cond_true.i29: ; preds = %entry
|
||||
%tmp17.i = load i32, i32* getelementptr (%struct.ImageParameters* @images, i32 0, i32 20), align 8 ; <i32> [#uses=1]
|
||||
%tmp20.i27 = load i32, i32* getelementptr (%struct.ImageParameters* @images, i32 0, i32 16), align 8 ; <i32> [#uses=1]
|
||||
%tmp17.i = load i32, i32* getelementptr (%struct.ImageParameters, %struct.ImageParameters* @images, i32 0, i32 20), align 8 ; <i32> [#uses=1]
|
||||
%tmp20.i27 = load i32, i32* getelementptr (%struct.ImageParameters, %struct.ImageParameters* @images, i32 0, i32 16), align 8 ; <i32> [#uses=1]
|
||||
%tmp8.i.i = select i1 false, i32 1, i32 0 ; <i32> [#uses=1]
|
||||
br label %bb.i8.us.i
|
||||
|
||||
|
@ -9,7 +9,7 @@ declare fastcc i32 @get_mem2Dint(i32***, i32, i32)
|
||||
|
||||
define fastcc void @init_global_buffers() nounwind {
|
||||
entry:
|
||||
%tmp151 = tail call fastcc i32 @get_mem2Dint( i32*** getelementptr (%struct.Decoders* @decoders, i32 0, i32 0), i32 16, i32 16 ) ; <i32> [#uses=1]
|
||||
%tmp151 = tail call fastcc i32 @get_mem2Dint( i32*** getelementptr (%struct.Decoders, %struct.Decoders* @decoders, i32 0, i32 0), i32 16, i32 16 ) ; <i32> [#uses=1]
|
||||
%tmp158 = tail call i8* @calloc( i32 0, i32 4 ) ; <i8*> [#uses=0]
|
||||
br i1 false, label %cond_true166, label %bb190.preheader
|
||||
|
||||
|
@ -8,6 +8,6 @@
|
||||
|
||||
define i32 @__gcov_close() nounwind {
|
||||
entry:
|
||||
load i32, i32* getelementptr (%struct.__gcov_var* @__gcov_var, i32 0, i32 5), align 4 ; <i32>:0 [#uses=1]
|
||||
load i32, i32* getelementptr (%struct.__gcov_var, %struct.__gcov_var* @__gcov_var, i32 0, i32 5), align 4 ; <i32>:0 [#uses=1]
|
||||
ret i32 %0
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ bb244: ; preds = %bb122, %bb122, %bb122, %bb122, %bb122, %bb122, %bb122, %bb122
|
||||
br i1 %0, label %bb435, label %bb433
|
||||
|
||||
bb394: ; preds = %bb122
|
||||
call void (i32, i32, i8*, i32, %struct.FILE_POS*, ...)* @Error(i32 1, i32 3, i8* getelementptr ([23 x i8]* @"\01LC13423", i32 0, i32 0), i32 0, %struct.FILE_POS* @no_file_pos, i8* getelementptr ([13 x i8]* @"\01LC18972", i32 0, i32 0), i8* null) nounwind
|
||||
call void (i32, i32, i8*, i32, %struct.FILE_POS*, ...)* @Error(i32 1, i32 3, i8* getelementptr ([23 x i8], [23 x i8]* @"\01LC13423", i32 0, i32 0), i32 0, %struct.FILE_POS* @no_file_pos, i8* getelementptr ([13 x i8], [13 x i8]* @"\01LC18972", i32 0, i32 0), i8* null) nounwind
|
||||
br label %bb396
|
||||
|
||||
bb396: ; preds = %bb394, %bb131, %bb122, %bb122, %bb122, %bb122, %RESUME
|
||||
|
@ -5,7 +5,7 @@
|
||||
define i16 @fn16(i16 %arg0.0, <2 x i16> %arg1, i16 %arg2.0) nounwind {
|
||||
entry:
|
||||
store <2 x i16> %arg1, <2 x i16>* null
|
||||
%0 = call i32 (i8*, ...)* @printf(i8* getelementptr ([30 x i8]* @.str, i32 0, i32 0), i32 0) nounwind ; <i32> [#uses=0]
|
||||
%0 = call i32 (i8*, ...)* @printf(i8* getelementptr ([30 x i8], [30 x i8]* @.str, i32 0, i32 0), i32 0) nounwind ; <i32> [#uses=0]
|
||||
ret i16 0
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ bb1: ; preds = %bb
|
||||
|
||||
bb3: ; preds = %bb1, %bb
|
||||
%iftmp.0.0 = phi i32 [ 0, %bb1 ], [ -1, %bb ] ; <i32> [#uses=1]
|
||||
%1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([7 x i8]* @"\01LC", i32 0, i32 0), i32 0, i32 %iftmp.0.0) nounwind ; <i32> [#uses=0]
|
||||
%1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([7 x i8], [7 x i8]* @"\01LC", i32 0, i32 0), i32 0, i32 %iftmp.0.0) nounwind ; <i32> [#uses=0]
|
||||
%2 = load %struct.List*, %struct.List** null, align 4 ; <%struct.List*> [#uses=2]
|
||||
%phitmp = icmp eq %struct.List* %2, null ; <i1> [#uses=1]
|
||||
br i1 %phitmp, label %bb5, label %bb
|
||||
|
@ -57,6 +57,6 @@ Fft.exit.i: ; preds = %bb7.i.i
|
||||
br i1 undef, label %bb5.i, label %bb1.outer2.i.i.outer
|
||||
|
||||
bb5.i: ; preds = %Fft.exit.i
|
||||
%0 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([15 x i8]* @"\01LC", i32 0, i32 0), double undef, double undef) nounwind ; <i32> [#uses=0]
|
||||
%0 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([15 x i8], [15 x i8]* @"\01LC", i32 0, i32 0), double undef, double undef) nounwind ; <i32> [#uses=0]
|
||||
unreachable
|
||||
}
|
||||
|
@ -47,14 +47,14 @@ bb11: ; preds = %bb9
|
||||
tail call void @diff(i8* undef, i8* %3, i32 undef, i32 undef, i32 undef, i32 undef) nounwind
|
||||
%4 = sitofp i32 undef to double ; <double> [#uses=1]
|
||||
%5 = fdiv double %4, 1.000000e+01 ; <double> [#uses=1]
|
||||
%6 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([29 x i8]* @"\01LC12", i32 0, i32 0), double %5) nounwind ; <i32> [#uses=0]
|
||||
%6 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([29 x i8], [29 x i8]* @"\01LC12", i32 0, i32 0), double %5) nounwind ; <i32> [#uses=0]
|
||||
%7 = load i32, i32* @al_len, align 4 ; <i32> [#uses=1]
|
||||
%8 = load i32, i32* @no_mat, align 4 ; <i32> [#uses=1]
|
||||
%9 = load i32, i32* @no_mis, align 4 ; <i32> [#uses=1]
|
||||
%10 = sub i32 %7, %8 ; <i32> [#uses=1]
|
||||
%11 = sub i32 %10, %9 ; <i32> [#uses=1]
|
||||
%12 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([33 x i8]* @"\01LC16", i32 0, i32 0), i32 %11) nounwind ; <i32> [#uses=0]
|
||||
%13 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([47 x i8]* @"\01LC17", i32 0, i32 0), i32 undef, i32 %1, i32 undef, i32 undef) nounwind ; <i32> [#uses=0]
|
||||
%12 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([33 x i8], [33 x i8]* @"\01LC16", i32 0, i32 0), i32 %11) nounwind ; <i32> [#uses=0]
|
||||
%13 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([47 x i8], [47 x i8]* @"\01LC17", i32 0, i32 0), i32 undef, i32 %1, i32 undef, i32 undef) nounwind ; <i32> [#uses=0]
|
||||
br i1 undef, label %bb15, label %bb12
|
||||
|
||||
bb12: ; preds = %bb11
|
||||
|
@ -42,10 +42,10 @@ bb11: ; preds = %bb9
|
||||
store i32 0, i32* @no_mis, align 4
|
||||
%4 = getelementptr i8, i8* %B, i32 %0 ; <i8*> [#uses=1]
|
||||
tail call void @diff(i8* undef, i8* %4, i32 undef, i32 %3, i32 undef, i32 undef) nounwind
|
||||
%5 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([33 x i8]* @"\01LC11", i32 0, i32 0), i32 %tmp13) nounwind ; <i32> [#uses=0]
|
||||
%5 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([33 x i8], [33 x i8]* @"\01LC11", i32 0, i32 0), i32 %tmp13) nounwind ; <i32> [#uses=0]
|
||||
%6 = load i32, i32* @no_mis, align 4 ; <i32> [#uses=1]
|
||||
%7 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([33 x i8]* @"\01LC15", i32 0, i32 0), i32 %6) nounwind ; <i32> [#uses=0]
|
||||
%8 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([47 x i8]* @"\01LC17", i32 0, i32 0), i32 undef, i32 %1, i32 undef, i32 %2) nounwind ; <i32> [#uses=0]
|
||||
%7 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([33 x i8], [33 x i8]* @"\01LC15", i32 0, i32 0), i32 %6) nounwind ; <i32> [#uses=0]
|
||||
%8 = tail call i32 (i8*, ...)* @printf(i8* getelementptr ([47 x i8], [47 x i8]* @"\01LC17", i32 0, i32 0), i32 undef, i32 %1, i32 undef, i32 %2) nounwind ; <i32> [#uses=0]
|
||||
br i1 undef, label %bb15, label %bb12
|
||||
|
||||
bb12: ; preds = %bb11
|
||||
|
@ -1012,7 +1012,7 @@ bb7: ; preds = %bb
|
||||
br i1 %764, label %bb10, label %bb11
|
||||
|
||||
bb8: ; preds = %entry
|
||||
%768 = call i32 @puts(i8* getelementptr ([21 x i8]* @_2E_str7, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
|
||||
%768 = call i32 @puts(i8* getelementptr ([21 x i8], [21 x i8]* @_2E_str7, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
|
||||
call void @exit(i32 -1) noreturn nounwind
|
||||
unreachable
|
||||
|
||||
|
@ -14,7 +14,7 @@ entry:
|
||||
br i1 %p, label %bb8, label %bb1
|
||||
|
||||
bb1: ; preds = %entry
|
||||
%malloccall = tail call i8* @malloc(i32 ptrtoint (%struct.Village* getelementptr (%struct.Village* null, i32 1) to i32))
|
||||
%malloccall = tail call i8* @malloc(i32 ptrtoint (%struct.Village* getelementptr (%struct.Village, %struct.Village* null, i32 1) to i32))
|
||||
%0 = bitcast i8* %malloccall to %struct.Village*
|
||||
%exp2 = call double @ldexp(double 1.000000e+00, i32 %level) nounwind ; <double> [#uses=1]
|
||||
%.c = fptosi double %exp2 to i32 ; <i32> [#uses=1]
|
||||
|
@ -8,7 +8,7 @@ entry:
|
||||
;CHECK: [sp, #8]
|
||||
;CHECK: [sp, #12]
|
||||
;CHECK: [sp]
|
||||
tail call void (i8*, ...)* @f(i8* getelementptr ([1 x i8]* @.str, i32 0, i32 0), i32 1, double 2.000000e+00, i32 3, double 4.000000e+00)
|
||||
tail call void (i8*, ...)* @f(i8* getelementptr ([1 x i8], [1 x i8]* @.str, i32 0, i32 0), i32 1, double 2.000000e+00, i32 3, double 4.000000e+00)
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -82,7 +82,7 @@ cond_true1369.preheader: ; preds = %cond_true1254
|
||||
ret void
|
||||
|
||||
bb1567: ; preds = %cond_true1254
|
||||
%tmp1591 = load i64, i64* getelementptr inbounds (%struct.CHESS_POSITION* @search, i32 0, i32 4) ; <i64> [#uses=1]
|
||||
%tmp1591 = load i64, i64* getelementptr inbounds (%struct.CHESS_POSITION, %struct.CHESS_POSITION* @search, i32 0, i32 4) ; <i64> [#uses=1]
|
||||
%tmp1572 = tail call fastcc i32 @FirstOne() ; <i32> [#uses=1]
|
||||
%tmp1594 = load i32, i32* undef ; <i32> [#uses=1]
|
||||
%tmp1594.upgrd.5 = trunc i32 %tmp1594 to i8 ; <i8> [#uses=1]
|
||||
|
@ -19,7 +19,7 @@ entry:
|
||||
%tmp21 = load i32, i32* undef ; <i32> [#uses=1]
|
||||
%0 = mul i32 1, %tmp21 ; <i32> [#uses=1]
|
||||
%vla22 = alloca i8, i32 %0, align 1 ; <i8*> [#uses=1]
|
||||
call void (...)* @zz(i8* getelementptr inbounds ([1 x i8]* @.str, i32 0, i32 0), i32 2, i32 1)
|
||||
call void (...)* @zz(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i32 0, i32 0), i32 2, i32 1)
|
||||
br i1 undef, label %if.then, label %if.end36
|
||||
|
||||
if.then: ; preds = %entry
|
||||
|
@ -13,7 +13,7 @@
|
||||
define void @TW_oldinput(%struct.FILE* nocapture %fp) nounwind {
|
||||
entry:
|
||||
%xcenter = alloca i32, align 4 ; <i32*> [#uses=2]
|
||||
%0 = call i32 (%struct.FILE*, i8*, ...)* @fscanf(%struct.FILE* %fp, i8* getelementptr inbounds ([14 x i8]* @.str2708, i32 0, i32 0), i32* undef, i32* undef, i32* %xcenter, i32* null) nounwind ; <i32> [#uses=1]
|
||||
%0 = call i32 (%struct.FILE*, i8*, ...)* @fscanf(%struct.FILE* %fp, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str2708, i32 0, i32 0), i32* undef, i32* undef, i32* %xcenter, i32* null) nounwind ; <i32> [#uses=1]
|
||||
%1 = icmp eq i32 %0, 4 ; <i1> [#uses=1]
|
||||
br i1 %1, label %bb, label %return
|
||||
|
||||
@ -137,7 +137,7 @@ bb322: ; preds = %bb248
|
||||
br i1 undef, label %bb248, label %bb445
|
||||
|
||||
bb445: ; preds = %bb322, %bb10, %bb
|
||||
%49 = call i32 (%struct.FILE*, i8*, ...)* @fscanf(%struct.FILE* %fp, i8* getelementptr inbounds ([14 x i8]* @.str2708, i32 0, i32 0), i32* undef, i32* undef, i32* %xcenter, i32* null) nounwind ; <i32> [#uses=1]
|
||||
%49 = call i32 (%struct.FILE*, i8*, ...)* @fscanf(%struct.FILE* %fp, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str2708, i32 0, i32 0), i32* undef, i32* undef, i32* %xcenter, i32* null) nounwind ; <i32> [#uses=1]
|
||||
%50 = icmp eq i32 %49, 4 ; <i1> [#uses=1]
|
||||
br i1 %50, label %bb, label %return
|
||||
|
||||
|
@ -128,7 +128,7 @@ if.end: ; preds = %.if.end_crit_edge,
|
||||
br i1 %cmp19, label %cond.false, label %cond.end
|
||||
|
||||
cond.false: ; preds = %if.end
|
||||
tail call void @__assert_fail(i8* getelementptr inbounds ([45 x i8]* @.str51, i32 0, i32 0), i8* getelementptr inbounds ([47 x i8]* @.str8, i32 0, i32 0), i32 1141, i8* getelementptr inbounds ([116 x i8]* @__PRETTY_FUNCTION__._ZNK4llvm7VarInit12getFieldInitERNS_6RecordEPKNS_9RecordValERKSs, i32 0, i32 0)) noreturn
|
||||
tail call void @__assert_fail(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str51, i32 0, i32 0), i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str8, i32 0, i32 0), i32 1141, i8* getelementptr inbounds ([116 x i8], [116 x i8]* @__PRETTY_FUNCTION__._ZNK4llvm7VarInit12getFieldInitERNS_6RecordEPKNS_9RecordValERKSs, i32 0, i32 0)) noreturn
|
||||
unreachable
|
||||
|
||||
cond.end: ; preds = %if.end
|
||||
|
@ -8,7 +8,7 @@ entry:
|
||||
%0 = shufflevector <2 x i64> undef, <2 x i64> zeroinitializer, <2 x i32> <i32 1, i32 2> ; <<2 x i64>> [#uses=1]
|
||||
store <2 x i64> %0, <2 x i64>* undef, align 16
|
||||
%val4723 = load <8 x i16>, <8 x i16>* undef ; <<8 x i16>> [#uses=1]
|
||||
call void @PrintShortX(i8* getelementptr inbounds ([21 x i8]* @.str271, i32 0, i32 0), <8 x i16> %val4723, i32 0) nounwind
|
||||
call void @PrintShortX(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str271, i32 0, i32 0), <8 x i16> %val4723, i32 0) nounwind
|
||||
ret i32 undef
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,7 @@ target triple = "thumbv7-apple-darwin10.0.0"
|
||||
@d = internal global i32 0, align 4 ; <i32*> [#uses=6]
|
||||
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8* ; <i8**> [#uses=1]
|
||||
@_ZTS1A = internal constant [3 x i8] c"1A\00" ; <[3 x i8]*> [#uses=1]
|
||||
@_ZTI1A = internal constant %0 { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([3 x i8]* @_ZTS1A, i32 0, i32 0) } ; <%0*> [#uses=1]
|
||||
@_ZTI1A = internal constant %0 { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @_ZTS1A, i32 0, i32 0) } ; <%0*> [#uses=1]
|
||||
@.str2 = private constant [18 x i8] c"c == %d, d == %d\0A\00" ; <[18 x i8]*> [#uses=1]
|
||||
@.str3 = private constant [16 x i8] c"A(const A&) %d\0A\00" ; <[16 x i8]*> [#uses=1]
|
||||
@.str4 = private constant [9 x i8] c"~A() %d\0A\00" ; <[9 x i8]*> [#uses=1]
|
||||
@ -31,7 +31,7 @@ define internal void @_ZN1AD1Ev(%struct.A* nocapture %this) nounwind ssp align 2
|
||||
entry:
|
||||
%tmp.i = getelementptr inbounds %struct.A, %struct.A* %this, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||
%tmp2.i = load i32, i32* %tmp.i ; <i32> [#uses=1]
|
||||
%call.i = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8]* @.str4, i32 0, i32 0), i32 %tmp2.i) nounwind ; <i32> [#uses=0]
|
||||
%call.i = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str4, i32 0, i32 0), i32 %tmp2.i) nounwind ; <i32> [#uses=0]
|
||||
%tmp3.i = load i32, i32* @d ; <i32> [#uses=1]
|
||||
%inc.i = add nsw i32 %tmp3.i, 1 ; <i32> [#uses=1]
|
||||
store i32 %inc.i, i32* @d
|
||||
@ -42,11 +42,11 @@ declare void @__cxa_throw(i8*, i8*, i8*)
|
||||
|
||||
define i32 @main() ssp {
|
||||
entry:
|
||||
%puts.i = tail call i32 @puts(i8* getelementptr inbounds ([14 x i8]* @str, i32 0, i32 0)) ; <i32> [#uses=0]
|
||||
%puts.i = tail call i32 @puts(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @str, i32 0, i32 0)) ; <i32> [#uses=0]
|
||||
%exception.i = tail call i8* @__cxa_allocate_exception(i32 4) nounwind ; <i8*> [#uses=2]
|
||||
%tmp2.i.i.i = bitcast i8* %exception.i to i32* ; <i32*> [#uses=1]
|
||||
store i32 1, i32* %tmp2.i.i.i
|
||||
%call.i.i.i = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([8 x i8]* @.str5, i32 0, i32 0), i32 1) nounwind ; <i32> [#uses=0]
|
||||
%call.i.i.i = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str5, i32 0, i32 0), i32 1) nounwind ; <i32> [#uses=0]
|
||||
invoke void @__cxa_throw(i8* %exception.i, i8* bitcast (%0* @_ZTI1A to i8*), i8* bitcast (void (%struct.A*)* @_ZN1AD1Ev to i8*)) noreturn
|
||||
to label %.noexc unwind label %lpad
|
||||
|
||||
@ -55,16 +55,16 @@ entry:
|
||||
|
||||
try.cont: ; preds = %lpad
|
||||
%0 = tail call i8* @__cxa_get_exception_ptr(i8* %exn) nounwind ; <i8*> [#uses=0]
|
||||
%call.i.i = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x i8]* @.str3, i32 0, i32 0), i32 2) nounwind ; <i32> [#uses=0]
|
||||
%call.i.i = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str3, i32 0, i32 0), i32 2) nounwind ; <i32> [#uses=0]
|
||||
%1 = tail call i8* @__cxa_begin_catch(i8* %exn) nounwind ; <i8*> [#uses=0]
|
||||
%puts = tail call i32 @puts(i8* getelementptr inbounds ([8 x i8]* @str1, i32 0, i32 0)) ; <i32> [#uses=0]
|
||||
%call.i.i3 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8]* @.str4, i32 0, i32 0), i32 2) nounwind ; <i32> [#uses=0]
|
||||
%puts = tail call i32 @puts(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @str1, i32 0, i32 0)) ; <i32> [#uses=0]
|
||||
%call.i.i3 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str4, i32 0, i32 0), i32 2) nounwind ; <i32> [#uses=0]
|
||||
%tmp3.i.i = load i32, i32* @d ; <i32> [#uses=1]
|
||||
%inc.i.i4 = add nsw i32 %tmp3.i.i, 1 ; <i32> [#uses=1]
|
||||
store i32 %inc.i.i4, i32* @d
|
||||
tail call void @__cxa_end_catch()
|
||||
%tmp13 = load i32, i32* @d ; <i32> [#uses=1]
|
||||
%call14 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([18 x i8]* @.str2, i32 0, i32 0), i32 2, i32 %tmp13) ; <i32> [#uses=0]
|
||||
%call14 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str2, i32 0, i32 0), i32 2, i32 %tmp13) ; <i32> [#uses=0]
|
||||
%tmp16 = load i32, i32* @d ; <i32> [#uses=1]
|
||||
%cmp = icmp ne i32 %tmp16, 2 ; <i1> [#uses=1]
|
||||
%conv = zext i1 %cmp to i32 ; <i32> [#uses=1]
|
||||
|
@ -48,7 +48,7 @@ bb1:
|
||||
%tmp10 = zext i32 %tmp6 to i64
|
||||
%tmp11 = zext i32 %tmp5 to i64
|
||||
%tmp12 = mul nsw i64 %tmp10, %tmp11
|
||||
%tmp13 = call i32 @foo(i8* getelementptr inbounds ([6 x i8]* @.str1, i32 0, i32 0), i64 %tmp12, i32 %tmp5) nounwind
|
||||
%tmp13 = call i32 @foo(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str1, i32 0, i32 0), i64 %tmp12, i32 %tmp5) nounwind
|
||||
br label %bb8
|
||||
|
||||
bb4:
|
||||
|
@ -15,14 +15,14 @@ define hidden void @foo() {
|
||||
; CHECK: ldr.w
|
||||
; CHECK-NOT: ldm
|
||||
entry:
|
||||
%tmp13 = load i32, i32* getelementptr inbounds (%struct.InformationBlock* @infoBlock, i32 0, i32 1, i32 0, i32 0), align 1
|
||||
%tmp15 = load i32, i32* getelementptr inbounds (%struct.InformationBlock* @infoBlock, i32 0, i32 1, i32 0, i32 1), align 1
|
||||
%tmp17 = load i32, i32* getelementptr inbounds (%struct.InformationBlock* @infoBlock, i32 0, i32 1, i32 0, i32 2), align 1
|
||||
%tmp19 = load i32, i32* getelementptr inbounds (%struct.InformationBlock* @infoBlock, i32 0, i32 1, i32 0, i32 3), align 1
|
||||
%tmp = load i32, i32* getelementptr inbounds (%struct.InformationBlock* @infoBlock, i32 0, i32 2, i32 0, i32 0), align 1
|
||||
%tmp3 = load i32, i32* getelementptr inbounds (%struct.InformationBlock* @infoBlock, i32 0, i32 2, i32 0, i32 1), align 1
|
||||
%tmp4 = load i32, i32* getelementptr inbounds (%struct.InformationBlock* @infoBlock, i32 0, i32 2, i32 0, i32 2), align 1
|
||||
%tmp5 = load i32, i32* getelementptr inbounds (%struct.InformationBlock* @infoBlock, i32 0, i32 2, i32 0, i32 3), align 1
|
||||
%tmp13 = load i32, i32* getelementptr inbounds (%struct.InformationBlock, %struct.InformationBlock* @infoBlock, i32 0, i32 1, i32 0, i32 0), align 1
|
||||
%tmp15 = load i32, i32* getelementptr inbounds (%struct.InformationBlock, %struct.InformationBlock* @infoBlock, i32 0, i32 1, i32 0, i32 1), align 1
|
||||
%tmp17 = load i32, i32* getelementptr inbounds (%struct.InformationBlock, %struct.InformationBlock* @infoBlock, i32 0, i32 1, i32 0, i32 2), align 1
|
||||
%tmp19 = load i32, i32* getelementptr inbounds (%struct.InformationBlock, %struct.InformationBlock* @infoBlock, i32 0, i32 1, i32 0, i32 3), align 1
|
||||
%tmp = load i32, i32* getelementptr inbounds (%struct.InformationBlock, %struct.InformationBlock* @infoBlock, i32 0, i32 2, i32 0, i32 0), align 1
|
||||
%tmp3 = load i32, i32* getelementptr inbounds (%struct.InformationBlock, %struct.InformationBlock* @infoBlock, i32 0, i32 2, i32 0, i32 1), align 1
|
||||
%tmp4 = load i32, i32* getelementptr inbounds (%struct.InformationBlock, %struct.InformationBlock* @infoBlock, i32 0, i32 2, i32 0, i32 2), align 1
|
||||
%tmp5 = load i32, i32* getelementptr inbounds (%struct.InformationBlock, %struct.InformationBlock* @infoBlock, i32 0, i32 2, i32 0, i32 3), align 1
|
||||
%insert21 = insertvalue [4 x i32] undef, i32 %tmp13, 0
|
||||
%insert23 = insertvalue [4 x i32] %insert21, i32 %tmp15, 1
|
||||
%insert25 = insertvalue [4 x i32] %insert23, i32 %tmp17, 2
|
||||
|
@ -10,7 +10,7 @@ target triple = "armv7-none-linux-gnueabi"
|
||||
@foo = external global %0, align 16
|
||||
|
||||
define arm_aapcs_vfpcc void @bar(float, i1 zeroext, i1 zeroext) nounwind {
|
||||
%4 = load <4 x float>, <4 x float>* getelementptr inbounds (%0* @foo, i32 0, i32 0), align 16
|
||||
%4 = load <4 x float>, <4 x float>* getelementptr inbounds (%0, %0* @foo, i32 0, i32 0), align 16
|
||||
%5 = extractelement <4 x float> %4, i32 0
|
||||
%6 = extractelement <4 x float> %4, i32 1
|
||||
%7 = extractelement <4 x float> %4, i32 2
|
||||
|
@ -14,6 +14,6 @@ define void @test_byval_usage_scheduling(i32 %n1, i32 %n2, %struct_t* byval %val
|
||||
entry:
|
||||
%a = getelementptr inbounds %struct_t, %struct_t* %val, i32 0, i32 0
|
||||
%0 = load double, double* %a
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([12 x i8]* @.str, i32 0, i32 0), double %0)
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i32 0, i32 0), double %0)
|
||||
ret void
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ entry:
|
||||
%conv = sext i16 %b to i32
|
||||
%conv1 = sext i8 %E to i32
|
||||
%call = tail call i32 (i8*, ...)* @printf(
|
||||
i8* getelementptr inbounds ([13 x i8]* @.str, i32 0, i32 0), ; --> R0
|
||||
i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i32 0, i32 0), ; --> R0
|
||||
i32 %a, ; --> R1
|
||||
i32 %conv, ; --> R2
|
||||
double %C, ; --> SP, NCRN := R4
|
||||
|
@ -6,7 +6,7 @@ declare arm_aapcs_vfpcc void @callee(i8*)
|
||||
|
||||
define arm_aapcs_vfpcc void @function() {
|
||||
entry:
|
||||
call arm_aapcs_vfpcc void @callee(i8* getelementptr inbounds ([7 x i8]* @.str, i32 0, i32 0))
|
||||
call arm_aapcs_vfpcc void @callee(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i32 0, i32 0))
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
|
||||
@_ZTS3Foo = linkonce_odr constant [5 x i8] c"3Foo\00"
|
||||
@_ZTI3Foo = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([5 x i8]* @_ZTS3Foo, i32 0, i32 0) }
|
||||
@_ZTI3Foo = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @_ZTS3Foo, i32 0, i32 0) }
|
||||
|
||||
define i32 @main() {
|
||||
entry:
|
||||
|
@ -10,10 +10,10 @@ define i32 @main() {
|
||||
entry:
|
||||
%retval = alloca i32, align 4
|
||||
store i32 0, i32* %retval
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0))
|
||||
%call1 = call i8* @strcpy(i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8]* @.str1, i32 0, i32 0)) #3
|
||||
call void @llvm.clear_cache(i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0), i8* getelementptr inbounds (i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0), i32 32)) #3
|
||||
%call2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0))
|
||||
%call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @buffer, i32 0, i32 0))
|
||||
%call1 = call i8* @strcpy(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @buffer, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str1, i32 0, i32 0)) #3
|
||||
call void @llvm.clear_cache(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @buffer, i32 0, i32 0), i8* getelementptr inbounds (i8, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @buffer, i32 0, i32 0), i32 32)) #3
|
||||
%call2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @buffer, i32 0, i32 0))
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
|
@ -21,8 +21,8 @@ entry:
|
||||
%letter = alloca i8 ; <i8*> [#uses=0]
|
||||
%prodvers = alloca [256 x i8] ; <[256 x i8]*> [#uses=1]
|
||||
%buildver = alloca [256 x i8] ; <[256 x i8]*> [#uses=0]
|
||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* undef, i8* getelementptr inbounds ([256 x i8]* @.str523, i32 0, i32 0), i32 256, i32 1, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* undef, i8* getelementptr inbounds ([256 x i8], [256 x i8]* @.str523, i32 0, i32 0), i32 256, i32 1, i1 false)
|
||||
%prodvers2 = bitcast [256 x i8]* %prodvers to i8* ; <i8*> [#uses=1]
|
||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %prodvers2, i8* getelementptr inbounds ([256 x i8]* @.str523, i32 0, i32 0), i32 256, i32 1, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %prodvers2, i8* getelementptr inbounds ([256 x i8], [256 x i8]* @.str523, i32 0, i32 0), i32 256, i32 1, i1 false)
|
||||
unreachable
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ while.body37: ; preds = %while.body37, %entr
|
||||
br i1 false, label %while.end42, label %while.body37
|
||||
|
||||
while.end42: ; preds = %while.body37, %entry
|
||||
%. = select i1 undef, i8* getelementptr inbounds ([200 x i8]* @F_floatmul.man1, i32 0, i32 0), i8* getelementptr inbounds ([200 x i8]* @F_floatmul.man2, i32 0, i32 0)
|
||||
%.92 = select i1 undef, i8* getelementptr inbounds ([200 x i8]* @F_floatmul.man2, i32 0, i32 0), i8* getelementptr inbounds ([200 x i8]* @F_floatmul.man1, i32 0, i32 0)
|
||||
%. = select i1 undef, i8* getelementptr inbounds ([200 x i8], [200 x i8]* @F_floatmul.man1, i32 0, i32 0), i8* getelementptr inbounds ([200 x i8], [200 x i8]* @F_floatmul.man2, i32 0, i32 0)
|
||||
%.92 = select i1 undef, i8* getelementptr inbounds ([200 x i8], [200 x i8]* @F_floatmul.man2, i32 0, i32 0), i8* getelementptr inbounds ([200 x i8], [200 x i8]* @F_floatmul.man1, i32 0, i32 0)
|
||||
tail call void bitcast (void (...)* @S_trimzeros to void (i8*)*)(i8* %.92) nounwind
|
||||
%call47 = tail call i32 @strlen(i8* %.) nounwind
|
||||
unreachable
|
||||
|
@ -9,11 +9,11 @@
|
||||
declare void @bar(i32*)
|
||||
|
||||
define void @foo() {
|
||||
%flag = load i32, i32* getelementptr inbounds([16 x i32]* @var, i32 0, i32 1)
|
||||
%flag = load i32, i32* getelementptr inbounds([16 x i32], [16 x i32]* @var, i32 0, i32 1)
|
||||
%tst = icmp eq i32 %flag, 0
|
||||
br i1 %tst, label %true, label %false
|
||||
true:
|
||||
tail call void @bar(i32* getelementptr inbounds([16 x i32]* @var, i32 0, i32 4))
|
||||
tail call void @bar(i32* getelementptr inbounds([16 x i32], [16 x i32]* @var, i32 0, i32 4))
|
||||
ret void
|
||||
false:
|
||||
ret void
|
||||
|
@ -28,10 +28,10 @@ for.body9: ; preds = %for.body9, %entry
|
||||
for.end54: ; preds = %for.body9
|
||||
%tmp115 = extractelement <4 x float> %add19, i32 1
|
||||
%conv6.i75 = fpext float %tmp115 to double, !dbg !45
|
||||
%call.i82 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([13 x i8]* @.str, i32 0, i32 0), double undef, double %conv6.i75, double undef, double undef) nounwind, !dbg !45
|
||||
%call.i82 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i32 0, i32 0), double undef, double %conv6.i75, double undef, double undef) nounwind, !dbg !45
|
||||
%tmp116 = extractelement <4 x float> %add20, i32 1
|
||||
%conv6.i76 = fpext float %tmp116 to double, !dbg !45
|
||||
%call.i83 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([13 x i8]* @.str, i32 0, i32 0), double undef, double %conv6.i76, double undef, double undef) nounwind, !dbg !45
|
||||
%call.i83 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i32 0, i32 0), double undef, double %conv6.i76, double undef, double undef) nounwind, !dbg !45
|
||||
ret i32 0, !dbg !49
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ entry:
|
||||
tail call void @llvm.dbg.value(metadata double %val, i64 0, metadata !20, metadata !MDExpression()), !dbg !26
|
||||
tail call void @llvm.dbg.value(metadata i8 %c, i64 0, metadata !21, metadata !MDExpression()), !dbg !26
|
||||
%0 = zext i8 %c to i32, !dbg !27
|
||||
%1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8]* @.str, i32 0, i32 0), i8* %ptr, double %val, i32 %0) nounwind, !dbg !27
|
||||
%1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0), i8* %ptr, double %val, i32 %0) nounwind, !dbg !27
|
||||
ret i32 0, !dbg !29
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ entry:
|
||||
tail call void @llvm.dbg.value(metadata double %val, i64 0, metadata !17, metadata !MDExpression()), !dbg !30
|
||||
tail call void @llvm.dbg.value(metadata i8 %c, i64 0, metadata !18, metadata !MDExpression()), !dbg !30
|
||||
%0 = zext i8 %c to i32, !dbg !31
|
||||
%1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8]* @.str, i32 0, i32 0), i8* %ptr, double %val, i32 %0) nounwind, !dbg !31
|
||||
%1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0), i8* %ptr, double %val, i32 %0) nounwind, !dbg !31
|
||||
ret i32 0, !dbg !33
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@ entry:
|
||||
%0 = sitofp i32 %argc to double, !dbg !35
|
||||
%1 = fadd double %0, 5.555552e+05, !dbg !35
|
||||
tail call void @llvm.dbg.value(metadata double %1, i64 0, metadata !24, metadata !MDExpression()), !dbg !35
|
||||
%2 = tail call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str1, i32 0, i32 0)) nounwind, !dbg !36
|
||||
%2 = tail call i32 @puts(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str1, i32 0, i32 0)) nounwind, !dbg !36
|
||||
%3 = getelementptr inbounds i8, i8* bitcast (i32 (i32, i8**)* @main to i8*), i32 %argc, !dbg !37
|
||||
%4 = trunc i32 %argc to i8, !dbg !37
|
||||
%5 = add i8 %4, 97, !dbg !37
|
||||
@ -49,7 +49,7 @@ entry:
|
||||
tail call void @llvm.dbg.value(metadata double %1, i64 0, metadata !20, metadata !MDExpression()) nounwind, !dbg !38
|
||||
tail call void @llvm.dbg.value(metadata i8 %5, i64 0, metadata !21, metadata !MDExpression()) nounwind, !dbg !38
|
||||
%6 = zext i8 %5 to i32, !dbg !39
|
||||
%7 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8]* @.str, i32 0, i32 0), i8* %3, double %1, i32 %6) nounwind, !dbg !39
|
||||
%7 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0), i8* %3, double %1, i32 %6) nounwind, !dbg !39
|
||||
%8 = tail call i32 @printer(i8* %3, double %1, i8 zeroext %5) nounwind, !dbg !40
|
||||
ret i32 0, !dbg !41
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ for.end54: ; preds = %for.body9
|
||||
tail call void @llvm.dbg.value(metadata <4 x float> %add19, i64 0, metadata !27, metadata !MDExpression()), !dbg !39
|
||||
%tmp115 = extractelement <4 x float> %add19, i32 1
|
||||
%conv6.i75 = fpext float %tmp115 to double, !dbg !45
|
||||
%call.i82 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([13 x i8]* @.str, i32 0, i32 0), double undef, double %conv6.i75, double undef, double undef) nounwind, !dbg !45
|
||||
%call.i82 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i32 0, i32 0), double undef, double %conv6.i75, double undef, double undef) nounwind, !dbg !45
|
||||
ret i32 0, !dbg !49
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ entry:
|
||||
tail call void @llvm.dbg.value(metadata i8 %c, i64 0, metadata !12, metadata !MDExpression()), !dbg !26
|
||||
%conv = fpext float %val to double, !dbg !27
|
||||
%conv3 = zext i8 %c to i32, !dbg !27
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8]* @.str, i32 0, i32 0), i8* %ptr, double %conv, i32 %conv3) nounwind optsize, !dbg !27
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0), i8* %ptr, double %conv, i32 %conv3) nounwind optsize, !dbg !27
|
||||
ret i32 0, !dbg !29
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ entry:
|
||||
tail call void @llvm.dbg.value(metadata i8 %c, i64 0, metadata !16, metadata !MDExpression()), !dbg !32
|
||||
%conv = fpext float %val to double, !dbg !33
|
||||
%conv3 = zext i8 %c to i32, !dbg !33
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8]* @.str, i32 0, i32 0), i8* %ptr, double %conv, i32 %conv3) nounwind optsize, !dbg !33
|
||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0), i8* %ptr, double %conv, i32 %conv3) nounwind optsize, !dbg !33
|
||||
ret i32 0, !dbg !35
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@ entry:
|
||||
%add = fadd double %conv, 5.555552e+05, !dbg !38
|
||||
%conv1 = fptrunc double %add to float, !dbg !38
|
||||
tail call void @llvm.dbg.value(metadata float %conv1, i64 0, metadata !22, metadata !MDExpression()), !dbg !38
|
||||
%call = tail call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str1, i32 0, i32 0)) nounwind optsize, !dbg !39
|
||||
%call = tail call i32 @puts(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str1, i32 0, i32 0)) nounwind optsize, !dbg !39
|
||||
%add.ptr = getelementptr i8, i8* bitcast (i32 (i32, i8**)* @main to i8*), i32 %argc, !dbg !40
|
||||
%add5 = add nsw i32 %argc, 97, !dbg !40
|
||||
%conv6 = trunc i32 %add5 to i8, !dbg !40
|
||||
@ -53,7 +53,7 @@ entry:
|
||||
tail call void @llvm.dbg.value(metadata i8 %conv6, i64 0, metadata !12, metadata !MDExpression()) nounwind, !dbg !43
|
||||
%conv.i = fpext float %conv1 to double, !dbg !44
|
||||
%conv3.i = and i32 %add5, 255, !dbg !44
|
||||
%call.i = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8]* @.str, i32 0, i32 0), i8* %add.ptr, double %conv.i, i32 %conv3.i) nounwind optsize, !dbg !44
|
||||
%call.i = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i32 0, i32 0), i8* %add.ptr, double %conv.i, i32 %conv3.i) nounwind optsize, !dbg !44
|
||||
%call14 = tail call i32 @printer(i8* %add.ptr, float %conv1, i8 zeroext %conv6) optsize, !dbg !45
|
||||
ret i32 0, !dbg !46
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ target triple = "armv5e--netbsd-eabi"
|
||||
|
||||
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
|
||||
@_ZTS9exception = linkonce_odr constant [11 x i8] c"9exception\00"
|
||||
@_ZTI9exception = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([11 x i8]* @_ZTS9exception, i32 0, i32 0) }
|
||||
@_ZTI9exception = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_ZTS9exception, i32 0, i32 0) }
|
||||
|
||||
define void @f() uwtable {
|
||||
%1 = alloca i8*
|
||||
|
@ -51,7 +51,7 @@ define void @t2(%struct.comment* %vc, i8* %tag, i8* %contents) {
|
||||
%tmp9 = call i8* @strcpy(i8* %tmp6, i8* %tag)
|
||||
%tmp6.len = call i32 @strlen(i8* %tmp6)
|
||||
%tmp6.indexed = getelementptr i8, i8* %tmp6, i32 %tmp6.len
|
||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp6.indexed, i8* getelementptr inbounds ([2 x i8]* @str215, i32 0, i32 0), i32 2, i32 1, i1 false)
|
||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp6.indexed, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str215, i32 0, i32 0), i32 2, i32 1, i1 false)
|
||||
%tmp15 = call i8* @strcat(i8* %tmp6, i8* %contents)
|
||||
call fastcc void @comment_add(%struct.comment* %vc, i8* %tmp6)
|
||||
ret void
|
||||
|
@ -14,7 +14,7 @@ entry:
|
||||
; ARM: t1
|
||||
; THUMB: t1
|
||||
%addr = alloca i32*, align 4
|
||||
store i32* getelementptr inbounds ([2 x [2 x [2 x [2 x [2 x i32]]]]]* @arr, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1), i32** %addr, align 4
|
||||
store i32* getelementptr inbounds ([2 x [2 x [2 x [2 x [2 x i32]]]]], [2 x [2 x [2 x [2 x [2 x i32]]]]]* @arr, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1), i32** %addr, align 4
|
||||
; ARM: add r0, r0, #124
|
||||
; THUMB: adds r0, #124
|
||||
%0 = load i32*, i32** %addr, align 4
|
||||
@ -26,7 +26,7 @@ entry:
|
||||
; ARM: t2
|
||||
; THUMB: t2
|
||||
%addr = alloca i32*, align 4
|
||||
store i32* getelementptr inbounds ([3 x [3 x %struct.A]]* @A, i32 0, i32 2, i32 2, i32 3, i32 1, i32 2, i32 2), i32** %addr, align 4
|
||||
store i32* getelementptr inbounds ([3 x [3 x %struct.A]], [3 x [3 x %struct.A]]* @A, i32 0, i32 2, i32 2, i32 3, i32 1, i32 2, i32 2), i32** %addr, align 4
|
||||
; ARM: movw [[R:r[0-9]+]], #1148
|
||||
; ARM: add r0, r{{[0-9]+}}, [[R]]
|
||||
; THUMB: addw r0, r0, #1148
|
||||
@ -39,7 +39,7 @@ entry:
|
||||
; ARM: t3
|
||||
; THUMB: t3
|
||||
%addr = alloca i32*, align 4
|
||||
store i32* getelementptr inbounds ([3 x [3 x %struct.A]]* @A, i32 0, i32 0, i32 1, i32 1, i32 0, i32 1), i32** %addr, align 4
|
||||
store i32* getelementptr inbounds ([3 x [3 x %struct.A]], [3 x [3 x %struct.A]]* @A, i32 0, i32 0, i32 1, i32 1, i32 0, i32 1), i32** %addr, align 4
|
||||
; ARM: add r0, r0, #140
|
||||
; THUMB: adds r0, #140
|
||||
%0 = load i32*, i32** %addr, align 4
|
||||
@ -51,7 +51,7 @@ entry:
|
||||
; ARM: t4
|
||||
; THUMB: t4
|
||||
%addr = alloca i32*, align 4
|
||||
store i32* getelementptr inbounds ([2 x [2 x [2 x %struct.B]]]* @B, i32 0, i32 0, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 3, i32 1, i32 2, i32 1), i32** %addr, align 4
|
||||
store i32* getelementptr inbounds ([2 x [2 x [2 x %struct.B]]], [2 x [2 x [2 x %struct.B]]]* @B, i32 0, i32 0, i32 0, i32 1, i32 1, i32 0, i32 0, i32 1, i32 3, i32 1, i32 2, i32 1), i32** %addr, align 4
|
||||
; ARM-NOT: movw r{{[0-9]}}, #1060
|
||||
; ARM-NOT: add r{{[0-9]}}, r{{[0-9]}}, #4
|
||||
; ARM-NOT: add r{{[0-9]}}, r{{[0-9]}}, #132
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user