mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-15 09:56:02 +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:]) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232184 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
300c79d840
commit
5a70dd1d82
@ -2707,11 +2707,11 @@ The following is the syntax for constant expressions:
|
|||||||
Convert a constant pointer or constant vector of pointer, CST, to another
|
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
|
TYPE in a different address space. The constraints of the operands are the
|
||||||
same as those for the :ref:`addrspacecast instruction <i_addrspacecast>`.
|
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
|
Perform the :ref:`getelementptr operation <i_getelementptr>` on
|
||||||
constants. As with the :ref:`getelementptr <i_getelementptr>`
|
constants. As with the :ref:`getelementptr <i_getelementptr>`
|
||||||
instruction, the index list may have zero or more indexes, which are
|
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)``
|
``select (COND, VAL1, VAL2)``
|
||||||
Perform the :ref:`select operation <i_select>` on constants.
|
Perform the :ref:`select operation <i_select>` on constants.
|
||||||
``icmp COND (VAL1, VAL2)``
|
``icmp COND (VAL1, VAL2)``
|
||||||
|
@ -2777,11 +2777,23 @@ bool LLParser::ParseValID(ValID &ID, PerFunctionState *PFS) {
|
|||||||
unsigned Opc = Lex.getUIntVal();
|
unsigned Opc = Lex.getUIntVal();
|
||||||
SmallVector<Constant*, 16> Elts;
|
SmallVector<Constant*, 16> Elts;
|
||||||
bool InBounds = false;
|
bool InBounds = false;
|
||||||
|
Type *Ty;
|
||||||
Lex.Lex();
|
Lex.Lex();
|
||||||
|
|
||||||
if (Opc == Instruction::GetElementPtr)
|
if (Opc == Instruction::GetElementPtr)
|
||||||
InBounds = EatIfPresent(lltok::kw_inbounds);
|
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"))
|
ParseToken(lltok::rparen, "expected ')' in constantexpr"))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@ -2792,6 +2804,10 @@ bool LLParser::ParseValID(ValID &ID, PerFunctionState *PFS) {
|
|||||||
|
|
||||||
Type *BaseType = Elts[0]->getType();
|
Type *BaseType = Elts[0]->getType();
|
||||||
auto *BasePointerType = cast<PointerType>(BaseType->getScalarType());
|
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());
|
ArrayRef<Constant *> Indices(Elts.begin() + 1, Elts.end());
|
||||||
for (Constant *Val : Indices) {
|
for (Constant *Val : Indices) {
|
||||||
|
@ -1223,6 +1223,14 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
|
|||||||
Out << ' ' << getPredicateText(CE->getPredicate());
|
Out << ' ' << getPredicateText(CE->getPredicate());
|
||||||
Out << " (";
|
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) {
|
for (User::const_op_iterator OI=CE->op_begin(); OI != CE->op_end(); ++OI) {
|
||||||
TypePrinter.print((*OI)->getType(), Out);
|
TypePrinter.print((*OI)->getType(), Out);
|
||||||
Out << ' ';
|
Out << ' ';
|
||||||
|
@ -15,8 +15,8 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
|||||||
define void @test() {
|
define void @test() {
|
||||||
%D = getelementptr %T, %T* @G, i64 0, i32 0
|
%D = getelementptr %T, %T* @G, i64 0, i32 0
|
||||||
%E = getelementptr %T, %T* @G, i64 0, i32 1, i64 5
|
%E = getelementptr %T, %T* @G, i64 0, i32 1, i64 5
|
||||||
%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
|
||||||
%X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T* @G, i64 0, i32 1), i64 0, i64 5
|
%X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T, %T* @G, i64 0, i32 1), i64 0, i64 5
|
||||||
|
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -8,9 +8,9 @@ define i32 @_Z3fooP1A(%struct.A* %b) {
|
|||||||
; CHECK: %tmp7 = load
|
; CHECK: %tmp7 = load
|
||||||
; CHECK: ret i32 %tmp7
|
; CHECK: ret i32 %tmp7
|
||||||
entry:
|
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]
|
%tmp4 = getelementptr %struct.A, %struct.A* %b, i32 0, i32 0 ;<i32*> [#uses=1]
|
||||||
store i32 0, i32* %tmp4, align 4
|
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
|
ret i32 %tmp7
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ target triple = "i686-pc-linux-gnu"
|
|||||||
|
|
||||||
define void @test291() nounwind {
|
define void @test291() nounwind {
|
||||||
entry:
|
entry:
|
||||||
store i32 1138410269, i32* getelementptr ([5 x %struct.S291]* @a291, i32 0, i32 2, i32 1)
|
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]* @a291, i32 0, i32 2) to i32*), align 4 ; <i32> [#uses=0]
|
%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
|
unreachable
|
||||||
}
|
}
|
||||||
|
@ -9,11 +9,11 @@ target triple = "x86_64-apple-macosx10.8.0"
|
|||||||
|
|
||||||
define i32 @main() nounwind uwtable ssp {
|
define i32 @main() nounwind uwtable ssp {
|
||||||
entry:
|
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
|
%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
|
%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
|
%tmp3 = trunc i64 %tmp2 to i32
|
||||||
ret i32 %tmp3
|
ret i32 %tmp3
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ define i32 @constexpr_test() {
|
|||||||
call void @external(i32* %X)
|
call void @external(i32* %X)
|
||||||
|
|
||||||
%Y = load i32, 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
|
%REMOVE = load i32, i32* %X
|
||||||
%retval = sub i32 %Y, %REMOVE
|
%retval = sub i32 %Y, %REMOVE
|
||||||
ret i32 %retval
|
ret i32 %retval
|
||||||
|
@ -14,7 +14,7 @@ for.cond2.preheader: ; preds = %for.end, %entry
|
|||||||
br label %for.body4
|
br label %for.body4
|
||||||
|
|
||||||
for.body4: ; preds = %for.body4, %for.cond2.preheader
|
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 ]
|
to [16000 x double]*), %for.cond2.preheader ]
|
||||||
%lsr.iv1 = phi [16000 x double]* [ %i10, %for.body4 ], [ @X, %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 {
|
define void @test_no_crash() #0 {
|
||||||
entry:
|
entry:
|
||||||
call i8* asm "nop", "=r,r"(
|
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
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -19,8 +19,8 @@
|
|||||||
; CHECK: MayAlias: i32* %F, i8* %X
|
; CHECK: MayAlias: i32* %F, i8* %X
|
||||||
define void @test() {
|
define void @test() {
|
||||||
%D = getelementptr %T, %T* @G, i64 0, i32 0
|
%D = getelementptr %T, %T* @G, i64 0, i32 0
|
||||||
%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
|
||||||
%X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T* @G, i64 0, i32 1), i64 0, i64 5
|
%X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T, %T* @G, i64 0, i32 1), i64 0, i64 5
|
||||||
|
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
@ -30,7 +30,7 @@ define void @test() {
|
|||||||
; CHECK: MayAlias: i32* %H, i32* %arg0
|
; CHECK: MayAlias: i32* %H, i32* %arg0
|
||||||
; CHECK: MayAlias: i32* %F, i32* %H
|
; CHECK: MayAlias: i32* %F, i32* %H
|
||||||
define void @simplecheck(i32* %arg0) {
|
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
|
%H = getelementptr %T, %T* @G2, i64 0, i32 0
|
||||||
|
|
||||||
ret void
|
ret void
|
||||||
@ -48,7 +48,7 @@ define void @simplecheck(i32* %arg0) {
|
|||||||
define void @checkNesting(i32* %arg0) {
|
define void @checkNesting(i32* %arg0) {
|
||||||
%A = getelementptr [1 x i32],
|
%A = getelementptr [1 x i32],
|
||||||
[1 x i32]* getelementptr
|
[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,
|
i64 0,
|
||||||
i32 0),
|
i32 0),
|
||||||
i64 0,
|
i64 0,
|
||||||
|
@ -36,7 +36,7 @@ for.body3.preheader:
|
|||||||
for.body3:
|
for.body3:
|
||||||
%j.011 = phi i32 [ %inc, %for.body3 ], [ 0, %for.body3.preheader ]
|
%j.011 = phi i32 [ %inc, %for.body3 ], [ 0, %for.body3.preheader ]
|
||||||
%0 = load i32, i32* %arrayidx
|
%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
|
%inc = add nuw nsw i32 %j.011, 1
|
||||||
%exitcond = icmp eq i32 %inc, %N
|
%exitcond = icmp eq i32 %inc, %N
|
||||||
br i1 %exitcond, label %for.inc4, label %for.body3
|
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 {
|
define i32 @main() nounwind uwtable ssp {
|
||||||
main_entry:
|
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)
|
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
|
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
|
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
|
ret i32 0
|
||||||
}
|
}
|
||||||
|
@ -119,8 +119,8 @@ define void @test2() {
|
|||||||
; CHECK-NOT: ->
|
; CHECK-NOT: ->
|
||||||
|
|
||||||
load i8*, i8** bitcast (void ()** @g to i8**)
|
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 ([4 x void ()*], [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 ({i8, void ()*, i8}, {i8, void ()*, i8}* @g2, i32 0, i32 1) to i8**)
|
||||||
load i8*, i8** bitcast (void ()** @h to i8**)
|
load i8*, i8** bitcast (void ()** @h to i8**)
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ for.cond: ; preds = %for.body, %lbl_818
|
|||||||
|
|
||||||
for.body: ; preds = %for.cond
|
for.body: ; preds = %for.cond
|
||||||
%idxprom = sext i32 %0 to i64
|
%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
|
%1 = load i32, i32* %arrayidx, align 1
|
||||||
store i32 %1, i32* @func_21_l_773, align 4
|
store i32 %1, i32* @func_21_l_773, align 4
|
||||||
store i32 1, i32* @g_814, align 4
|
store i32 1, i32* @g_814, align 4
|
||||||
|
@ -65,7 +65,7 @@ for.inc: ; preds = %for.body
|
|||||||
br label %for.cond
|
br label %for.cond
|
||||||
|
|
||||||
for.end: ; preds = %for.body, %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
|
ret i32 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,12 +9,12 @@
|
|||||||
; Function Attrs: nounwind ssp uwtable
|
; Function Attrs: nounwind ssp uwtable
|
||||||
define i32 @main() {
|
define i32 @main() {
|
||||||
; CHECK-LABEL: Classifying expressions for: @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
|
br label %loop
|
||||||
|
|
||||||
loop:
|
loop:
|
||||||
%storemerge1 = phi i8 [ 0, %0 ], [ %inc, %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
|
%inc = add nuw i8 %storemerge1, 1
|
||||||
; CHECK: %inc = add nuw i8 %storemerge1, 1
|
; CHECK: %inc = add nuw i8 %storemerge1, 1
|
||||||
; CHECK-NEXT: --> {1,+,1}<nuw><%loop>
|
; CHECK-NEXT: --> {1,+,1}<nuw><%loop>
|
||||||
@ -23,6 +23,6 @@ loop:
|
|||||||
br i1 %exitcond, label %exit, label %loop
|
br i1 %exitcond, label %exit, label %loop
|
||||||
|
|
||||||
exit:
|
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
|
ret i32 0
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,7 @@ bb4.bb5_crit_edge: ; preds = %bb4
|
|||||||
br label %bb5
|
br label %bb5
|
||||||
|
|
||||||
bb5: ; preds = %bb4.bb5_crit_edge, %entry
|
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]
|
%tmp13 = icmp eq i32 %tmp12, -1116 ; <i1> [#uses=1]
|
||||||
br i1 %tmp13, label %bb7, label %bb6
|
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
|
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 ]
|
%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
|
br label %return
|
||||||
|
|
||||||
return.loopexit.split: ; preds = %for.cond1.preheader.lr.ph
|
return.loopexit.split: ; preds = %for.cond1.preheader.lr.ph
|
||||||
|
@ -17,10 +17,10 @@ define %structA** @test(%classA* %this, i32** %p1) #0 align 2 {
|
|||||||
entry:
|
entry:
|
||||||
; CHECK-LABEL: @test
|
; CHECK-LABEL: @test
|
||||||
; CHECK: load i32*, i32** %p1, align 8, !tbaa
|
; 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
|
; CHECK: call void @callee
|
||||||
%0 = load i32*, i32** %p1, align 8, !tbaa !1
|
%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)
|
call void @callee(i32* %0, i32* %1)
|
||||||
unreachable
|
unreachable
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ define i8* @test() {
|
|||||||
br label %BB1
|
br label %BB1
|
||||||
|
|
||||||
BB1: ; preds = %BB2, %0
|
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
|
ret i8* %ret
|
||||||
|
|
||||||
BB2: ; No predecessors!
|
BB2: ; No predecessors!
|
||||||
|
@ -4,6 +4,6 @@
|
|||||||
@.LC0 = internal global [12 x i8] c"hello world\00" ; <[12 x i8]*> [#uses=1]
|
@.LC0 = internal global [12 x i8] c"hello world\00" ; <[12 x i8]*> [#uses=1]
|
||||||
|
|
||||||
define i8* @test() {
|
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() {
|
define void @main() {
|
||||||
bb1:
|
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
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
@.str_1 = internal constant [6 x i8] c"_Bool\00" ; <[6 x i8]*> [#uses=2]
|
@.str_1 = internal constant [6 x i8] c"_Bool\00" ; <[6 x i8]*> [#uses=2]
|
||||||
|
|
||||||
define i32 @test() {
|
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]
|
%tmp.55 = icmp ne i8 %tmp.54, 66 ; <i1> [#uses=1]
|
||||||
br i1 %tmp.55, label %then.7, label %endif.7
|
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]
|
@data_triangleItems = internal constant [2908 x %struct.TTriangleItem] zeroinitializer; <[2908 x %struct.TTriangleItem]*> [#uses=2]
|
||||||
|
|
||||||
define void @foo() {
|
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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ define i32 @main(i32 %argc, i8** %argv) {
|
|||||||
entry:
|
entry:
|
||||||
%tmp65 = getelementptr i8*, i8** %argv, i32 1 ; <i8**> [#uses=1]
|
%tmp65 = getelementptr i8*, i8** %argv, i32 1 ; <i8**> [#uses=1]
|
||||||
%tmp66 = load i8*, i8** %tmp65 ; <i8*> [#uses=0]
|
%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
|
exit_1: ; preds = %entry
|
||||||
ret i32 0
|
ret i32 0
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
|
|
||||||
define void @foo() {
|
define void @foo() {
|
||||||
entry:
|
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]
|
%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 addrspace(66)* @output, i32 0, i32 1), align 4
|
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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,5 +2,5 @@
|
|||||||
; RUN: verify-uselistorder %s
|
; RUN: verify-uselistorder %s
|
||||||
|
|
||||||
@foo = global i32 0
|
@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.anon = type { i32, i32 }
|
||||||
%struct.test = type { i64, %struct.anon, %struct.test* }
|
%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]
|
@TestArray = common global [10 x %struct.test] zeroinitializer, align 32 ; <[10 x %struct.test]*> [#uses=2]
|
||||||
|
|
||||||
define i32 @main() nounwind readonly {
|
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 }
|
%Ty = type { i32, i32 }
|
||||||
@B = external global %Ty
|
@B = external global %Ty
|
||||||
|
|
||||||
global i1 icmp slt (i64* @A, i64* getelementptr (i64* @A, i64 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* @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* @A, i64 0)) ; false
|
global i1 icmp slt (i64* @A, i64* getelementptr (i64, i64* @A, i64 0)) ; false
|
||||||
global i1 icmp slt (i32* getelementptr (%Ty* @B, i64 0, i32 0),
|
global i1 icmp slt (i32* getelementptr (%Ty, %Ty* @B, i64 0, i32 0),
|
||||||
i32* getelementptr (%Ty* @B, i64 0, i32 1)) ; true
|
i32* getelementptr (%Ty, %Ty* @B, i64 0, i32 1)) ; true
|
||||||
;global i1 icmp ne (i64* @A, i64* bitcast (%Ty* @B to i64*)) ; true
|
;global i1 icmp ne (i64* @A, i64* bitcast (%Ty* @B to i64*)) ; true
|
||||||
|
|
||||||
; PR2206
|
; 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
|
; icmp should return true. It's not valid to *dereference* in @B from a pointer
|
||||||
; based on @A, but icmp isn't a dereference.
|
; based on @A, but icmp isn't a dereference.
|
||||||
|
|
||||||
; CHECK: @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* @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
|
; 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.
|
; 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))
|
; 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* @A, i64 1), i64* getelementptr inbounds (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)*)
|
; 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)*)
|
@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.
|
; Don't add an inbounds on @weak.gep, since @weak may be null.
|
||||||
; CHECK: @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* @weak, i32 1)
|
@weak.gep = global i32* getelementptr (i32, i32* @weak, i32 1)
|
||||||
@weak = extern_weak global i32
|
@weak = extern_weak global i32
|
||||||
|
|
||||||
; An object with weak linkage cannot have it's identity determined at compile time.
|
; 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)
|
@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.
|
; 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 = global i32 0
|
||||||
@glob.a3 = alias getelementptr (i32* @glob.a2, i32 1)
|
@glob.a3 = alias getelementptr (i32, i32* @glob.a2, i32 1)
|
||||||
@glob.a2 = alias getelementptr (i32* @glob.a1, i32 1)
|
@glob.a2 = alias getelementptr (i32, i32* @glob.a1, i32 1)
|
||||||
@glob.a1 = alias i32* @glob
|
@glob.a1 = alias i32* @glob
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
; Globals.
|
; Globals.
|
||||||
@global = global i32 0
|
@global = global i32 0
|
||||||
@alias.ref1 = 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* @alias, i64 1)
|
@alias.ref2 = global i32* getelementptr inbounds (i32, i32* @alias, i64 1)
|
||||||
|
|
||||||
; Aliases.
|
; Aliases.
|
||||||
@alias = alias i32* @global
|
@alias = alias i32* @global
|
||||||
@alias.ref3 = 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* @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-LABEL: @test.objectsize(
|
||||||
; CHECK: @llvm.objectsize.i32.p0i8
|
; CHECK: @llvm.objectsize.i32.p0i8
|
||||||
; CHECK-DAG: declare i32 @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
|
ret i32 %s
|
||||||
}
|
}
|
||||||
|
@ -195,8 +195,8 @@ define i64 @lshr_exact_ce() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
define i64* @gep_nw_ce() {
|
define i64* @gep_nw_ce() {
|
||||||
; CHECK: ret i64* getelementptr inbounds (i64* @addr, i64 171)
|
; CHECK: ret i64* getelementptr inbounds (i64, i64* @addr, i64 171)
|
||||||
ret i64* getelementptr inbounds (i64* @addr, i64 171)
|
ret i64* getelementptr inbounds (i64, i64* @addr, i64 171)
|
||||||
}
|
}
|
||||||
|
|
||||||
define i64 @add_plain_ce() {
|
define i64 @add_plain_ce() {
|
||||||
@ -220,8 +220,8 @@ define i64 @sdiv_plain_ce() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
define i64* @gep_plain_ce() {
|
define i64* @gep_plain_ce() {
|
||||||
; CHECK: ret i64* getelementptr (i64* @addr, i64 171)
|
; CHECK: ret i64* getelementptr (i64, i64* @addr, i64 171)
|
||||||
ret i64* getelementptr (i64* @addr, i64 171)
|
ret i64* getelementptr (i64, i64* @addr, i64 171)
|
||||||
}
|
}
|
||||||
|
|
||||||
define i64 @add_both_reversed_ce() {
|
define i64 @add_both_reversed_ce() {
|
||||||
|
@ -3,21 +3,21 @@
|
|||||||
|
|
||||||
; Verify that over-indexed getelementptrs are folded.
|
; Verify that over-indexed getelementptrs are folded.
|
||||||
@A = external global [2 x [3 x [5 x [7 x i32]]]]
|
@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)
|
@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]]]]* @A, i64 36, i64 0, i64 1, i64 0, i64 5)
|
; 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]]]]* @A, i64 3, i64 2, i64 0, i64 0, i64 7523)
|
@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]]]]* @A, i64 39, i64 1, i64 1, i64 4, i64 5)
|
; 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.
|
; Verify that constant expression GEPs work with i84 indices.
|
||||||
@D = external global [1 x i32]
|
@D = external global [1 x i32]
|
||||||
|
|
||||||
@E = global i32* getelementptr inbounds ([1 x i32]* @D, i84 0, i64 1)
|
@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]* @D, i84 1, i64 0)
|
; CHECK: @E = global i32* getelementptr inbounds ([1 x i32], [1 x i32]* @D, i84 1, i64 0)
|
||||||
|
|
||||||
; Verify that i16 indices work.
|
; Verify that i16 indices work.
|
||||||
@x = external global {i32, i32}
|
@x = external global {i32, i32}
|
||||||
@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 }* @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.
|
; See if i92 indices work too.
|
||||||
define i32 *@test({i32, i32}* %t, i92 %n) {
|
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.
|
; 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.
|
; Verify that struct GEP works with a vector of pointers.
|
||||||
define <2 x i32*> @test7(<2 x {i32, i32}*> %a) {
|
define <2 x i32*> @test7(<2 x {i32, i32}*> %a) {
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
; CHECK: getelementptr vector index has a wrong number of elements
|
; 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
|
; RUN: verify-uselistorder < %s
|
||||||
|
|
||||||
@a = global [4 x i1] [i1 0, i1 1, i1 0, i1 1]
|
@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.
|
; Check use-list order of constants used by globals.
|
||||||
@glob1 = global i5 7
|
@glob1 = global i5 7
|
||||||
@ -48,9 +48,9 @@ first:
|
|||||||
|
|
||||||
define i1 @loada() {
|
define i1 @loada() {
|
||||||
entry:
|
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
|
ret i1 %a
|
||||||
}
|
}
|
||||||
|
|
||||||
uselistorder i5 7, { 1, 0, 2 }
|
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
|
; RUN: verify-uselistorder < %s
|
||||||
|
|
||||||
@ba1 = constant i8* blockaddress (@bafunc1, %bb)
|
@ba1 = constant i8* blockaddress (@bafunc1, %bb)
|
||||||
@ba2 = 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* blockaddress (@bafunc2, %bb), i61 0)
|
@ba3 = constant i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||||
|
|
||||||
define i8* @babefore() {
|
define i8* @babefore() {
|
||||||
ret i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
|
ret i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||||
bb1:
|
bb1:
|
||||||
ret i8* blockaddress (@bafunc1, %bb)
|
ret i8* blockaddress (@bafunc1, %bb)
|
||||||
bb2:
|
bb2:
|
||||||
|
@ -311,7 +311,7 @@ entry:
|
|||||||
ret void
|
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:
|
entry:
|
||||||
; CHECK: %res1 = getelementptr { i8, i8 }, { i8, i8 }* %s, i32 1, i32 1
|
; CHECK: %res1 = getelementptr { i8, i8 }, { i8, i8 }* %s, i32 1, i32 1
|
||||||
%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** }
|
%"void*[]" = type { i64, i8** }
|
||||||
@_D10ModuleInfo6__vtblZ = external constant %object.ModuleInfo.__vtbl ; <%object.ModuleInfo.__vtbl*> [#uses=1]
|
@_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]
|
@.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]
|
@_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]
|
@_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]
|
@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 {
|
define internal void @_D5tango4core8BitManip16__moduleinfoCtorZ() nounwind {
|
||||||
moduleinfoCtorEntry:
|
moduleinfoCtorEntry:
|
||||||
%current = load %ModuleReference*, %ModuleReference** @_Dmodule_ref ; <%ModuleReference*> [#uses=1]
|
%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
|
store %ModuleReference* @_D5tango4core8BitManip11__moduleRefZ, %ModuleReference** @_Dmodule_ref
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -13,8 +13,8 @@
|
|||||||
@v3 = alias bitcast (i32* @v1 to i16*)
|
@v3 = alias bitcast (i32* @v1 to i16*)
|
||||||
; CHECK: @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)
|
@v4 = alias getelementptr ([1 x i32], [1 x i32]* @v2, i32 0, i32 0)
|
||||||
; CHECK: @v4 = alias getelementptr inbounds ([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)*)
|
@v5 = alias i32 addrspace(2)* addrspacecast (i32 addrspace(0)* @v1 to i32 addrspace(2)*)
|
||||||
; CHECK: @v5 = alias addrspacecast (i32* @v1 to i32 addrspace(2)*)
|
; CHECK: @v5 = alias addrspacecast (i32* @v1 to i32 addrspace(2)*)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
; RUN: verify-uselistorder < %s
|
; RUN: verify-uselistorder < %s
|
||||||
|
|
||||||
@a = global [4 x i1] [i1 0, i1 1, i1 0, i1 1]
|
@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.
|
; Check use-list order of constants used by globals.
|
||||||
@glob1 = global i5 7
|
@glob1 = global i5 7
|
||||||
@ -85,7 +85,7 @@ entry:
|
|||||||
|
|
||||||
define i1 @loada() {
|
define i1 @loada() {
|
||||||
entry:
|
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
|
ret i1 %a
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,11 +134,11 @@ loop2:
|
|||||||
|
|
||||||
; Check that block addresses work.
|
; Check that block addresses work.
|
||||||
@ba1 = constant i8* blockaddress (@bafunc1, %bb)
|
@ba1 = constant i8* blockaddress (@bafunc1, %bb)
|
||||||
@ba2 = 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* blockaddress (@bafunc2, %bb), i61 0)
|
@ba3 = constant i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||||
|
|
||||||
define i8* @babefore() {
|
define i8* @babefore() {
|
||||||
ret i8* getelementptr (i8* blockaddress (@bafunc2, %bb), i61 0)
|
ret i8* getelementptr (i8, i8* blockaddress (@bafunc2, %bb), i61 0)
|
||||||
bb1:
|
bb1:
|
||||||
ret i8* blockaddress (@bafunc1, %bb)
|
ret i8* blockaddress (@bafunc1, %bb)
|
||||||
bb2:
|
bb2:
|
||||||
|
@ -16,11 +16,11 @@ entry:
|
|||||||
%0 = load double, double* %d.addr, align 8
|
%0 = load double, double* %d.addr, align 8
|
||||||
%1 = load double, double* %d.addr, align 8
|
%1 = load double, double* %d.addr, align 8
|
||||||
%conv = fptoui double %1 to i64
|
%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
|
%2 = load double, double* %d.addr, align 8
|
||||||
%3 = load double, double* %d.addr, align 8
|
%3 = load double, double* %d.addr, align 8
|
||||||
%conv1 = fptoui double %3 to i32
|
%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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,12 +37,12 @@ entry:
|
|||||||
%conv = fpext float %0 to double
|
%conv = fpext float %0 to double
|
||||||
%1 = load float, float* %f.addr, align 4
|
%1 = load float, float* %f.addr, align 4
|
||||||
%conv1 = fptoui float %1 to i64
|
%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
|
%2 = load float, float* %f.addr, align 4
|
||||||
%conv2 = fpext float %2 to double
|
%conv2 = fpext float %2 to double
|
||||||
%3 = load float, float* %f.addr, align 4
|
%3 = load float, float* %f.addr, align 4
|
||||||
%conv3 = fptoui float %3 to i32
|
%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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ entry:
|
|||||||
store <4 x i32> %y, <4 x i32>* %y.addr, align 16
|
store <4 x i32> %y, <4 x i32>* %y.addr, align 16
|
||||||
%0 = load i32, i32* %x.addr, align 4
|
%0 = load i32, i32* %x.addr, align 4
|
||||||
%1 = load <4 x i32>, <4 x i32>* %y.addr, align 16
|
%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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,6 +186,6 @@ entry:
|
|||||||
%1 = load i32, i32* %x.addr, align 4
|
%1 = load i32, i32* %x.addr, align 4
|
||||||
%2 = bitcast %struct.s41* %s41 to i128*
|
%2 = bitcast %struct.s41* %s41 to i128*
|
||||||
%3 = load i128, i128* %2, align 1
|
%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
|
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 {
|
define i32 @next_id() nounwind optsize ssp align 2 {
|
||||||
entry:
|
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
|
%add.i = add i32 %0, 1
|
||||||
%tobool = icmp eq i32 %add.i, 0
|
%tobool = icmp eq i32 %add.i, 0
|
||||||
br i1 %tobool, label %if.else, label %return
|
br i1 %tobool, label %if.else, label %return
|
||||||
|
|
||||||
if.else: ; preds = %entry
|
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
|
%add.i2 = add i32 %1, 1
|
||||||
br label %return
|
br label %return
|
||||||
|
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
; CHECK-NOT: AdrpAddStr
|
; CHECK-NOT: AdrpAddStr
|
||||||
define i32 @pptp_wan_init() {
|
define i32 @pptp_wan_init() {
|
||||||
entry:
|
entry:
|
||||||
store i32* null, i32** getelementptr inbounds (%struct.anon* @pptp_wan_head, i64 0, i32 0), 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* @pptp_wan_head, i64 0, i32 0), i32*** getelementptr inbounds (%struct.anon* @pptp_wan_head, i64 0, i32 1), 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
|
ret i32 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ entry:
|
|||||||
; CHECK: add x[[REG3:[0-9]+]], x[[REG1]], x[[REG2]]
|
; CHECK: add x[[REG3:[0-9]+]], x[[REG1]], x[[REG2]]
|
||||||
; CHECK: ldr w0, [x[[REG3]]]
|
; CHECK: ldr w0, [x[[REG3]]]
|
||||||
; CHECK: ret
|
; 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
|
ret i32 %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ entry:
|
|||||||
; CHECK: add x[[REG3:[0-9]+]], x[[REG1]], x[[REG2]]
|
; CHECK: add x[[REG3:[0-9]+]], x[[REG1]], x[[REG2]]
|
||||||
; CHECK: ldr x0, [x[[REG3]]]
|
; CHECK: ldr x0, [x[[REG3]]]
|
||||||
; CHECK: ret
|
; 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
|
ret i64 %0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ define void @t1() {
|
|||||||
; ARM64: movz x2, #0x50
|
; ARM64: movz x2, #0x50
|
||||||
; ARM64: uxtb w1, w9
|
; ARM64: uxtb w1, w9
|
||||||
; ARM64: bl _memset
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ define void @t2() {
|
|||||||
; ARM64: add x1, x8, _message@PAGEOFF
|
; ARM64: add x1, x8, _message@PAGEOFF
|
||||||
; ARM64: movz x2, #0x50
|
; ARM64: movz x2, #0x50
|
||||||
; ARM64: bl _memcpy
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ define void @t3() {
|
|||||||
; ARM64: add x1, x8, _message@PAGEOFF
|
; ARM64: add x1, x8, _message@PAGEOFF
|
||||||
; ARM64: movz x2, #0x14
|
; ARM64: movz x2, #0x14
|
||||||
; ARM64: bl _memmove
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ define void @t4() {
|
|||||||
; ARM64: ldrb w11, [x9, #16]
|
; ARM64: ldrb w11, [x9, #16]
|
||||||
; ARM64: strb w11, [x8, #16]
|
; ARM64: strb w11, [x8, #16]
|
||||||
; ARM64: ret
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ define void @t5() {
|
|||||||
; ARM64: ldrb w11, [x9, #16]
|
; ARM64: ldrb w11, [x9, #16]
|
||||||
; ARM64: strb w11, [x8, #16]
|
; ARM64: strb w11, [x8, #16]
|
||||||
; ARM64: ret
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ define void @t6() {
|
|||||||
; ARM64: ldrb w10, [x9, #8]
|
; ARM64: ldrb w10, [x9, #8]
|
||||||
; ARM64: strb w10, [x8, #8]
|
; ARM64: strb w10, [x8, #8]
|
||||||
; ARM64: ret
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ define void @t7() {
|
|||||||
; ARM64: ldrb w10, [x9, #6]
|
; ARM64: ldrb w10, [x9, #6]
|
||||||
; ARM64: strb w10, [x8, #6]
|
; ARM64: strb w10, [x8, #6]
|
||||||
; ARM64: ret
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ define void @t8() {
|
|||||||
; ARM64: ldrb w10, [x9, #3]
|
; ARM64: ldrb w10, [x9, #3]
|
||||||
; ARM64: strb w10, [x8, #3]
|
; ARM64: strb w10, [x8, #3]
|
||||||
; ARM64: ret
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ define i32 @main() nounwind ssp {
|
|||||||
entry:
|
entry:
|
||||||
%retval = alloca i32, align 4
|
%retval = alloca i32, align 4
|
||||||
store i32 0, i32* %retval
|
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
|
ret i32 %call
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ entry:
|
|||||||
; CHECK: strh [[REG1]], [x[[BASEREG2]], #8]
|
; CHECK: strh [[REG1]], [x[[BASEREG2]], #8]
|
||||||
; CHECK: ldr [[REG2:x[0-9]+]],
|
; CHECK: ldr [[REG2:x[0-9]+]],
|
||||||
; CHECK: str [[REG2]],
|
; 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
|
ret i32 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ entry:
|
|||||||
; CHECK: stur [[DEST]], [x0, #15]
|
; CHECK: stur [[DEST]], [x0, #15]
|
||||||
; CHECK: ldr [[DEST:q[0-9]+]], [x[[BASEREG]]]
|
; CHECK: ldr [[DEST:q[0-9]+]], [x[[BASEREG]]]
|
||||||
; CHECK: str [[DEST]], [x0]
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ entry:
|
|||||||
; CHECK: str [[REG3]], [x0, #32]
|
; CHECK: str [[REG3]], [x0, #32]
|
||||||
; CHECK: ldp [[DEST1:q[0-9]+]], [[DEST2:q[0-9]+]], [x{{[0-9]+}}]
|
; CHECK: ldp [[DEST1:q[0-9]+]], [[DEST2:q[0-9]+]], [x{{[0-9]+}}]
|
||||||
; CHECK: stp [[DEST1]], [[DEST2]], [x0]
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ entry:
|
|||||||
; CHECK: str [[REG4]], [x0, #16]
|
; CHECK: str [[REG4]], [x0, #16]
|
||||||
; CHECK: ldr [[DEST:q[0-9]+]], [x[[BASEREG]]]
|
; CHECK: ldr [[DEST:q[0-9]+]], [x[[BASEREG]]]
|
||||||
; CHECK: str [[DEST]], [x0]
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ entry:
|
|||||||
; CHECK: strh [[REG5]], [x0, #16]
|
; CHECK: strh [[REG5]], [x0, #16]
|
||||||
; CHECK: ldr [[REG6:q[0-9]+]], [x{{[0-9]+}}]
|
; CHECK: ldr [[REG6:q[0-9]+]], [x{{[0-9]+}}]
|
||||||
; CHECK: str [[REG6]], [x0]
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ entry:
|
|||||||
; CHECK: movz [[REG8:w[0-9]+]],
|
; CHECK: movz [[REG8:w[0-9]+]],
|
||||||
; CHECK: movk [[REG8]],
|
; CHECK: movk [[REG8]],
|
||||||
; CHECK: str [[REG8]], [x0]
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ entry:
|
|||||||
; CHECK: stur [[REG9]], [x{{[0-9]+}}, #6]
|
; CHECK: stur [[REG9]], [x{{[0-9]+}}, #6]
|
||||||
; CHECK: ldr
|
; CHECK: ldr
|
||||||
; CHECK: str
|
; 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ define void @foo() nounwind {
|
|||||||
; CHECK: foo:
|
; CHECK: foo:
|
||||||
; CHECK: adrp x{{[0-9]}}, .L.str
|
; CHECK: adrp x{{[0-9]}}, .L.str
|
||||||
; CHECK-NEXT: add x{{[0-9]}}, x{{[0-9]}}, :lo12:.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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,7 +270,7 @@ define <1 x i64> @fct0() nounwind readonly ssp {
|
|||||||
entry:
|
entry:
|
||||||
; CHECK-LABEL: fct0:
|
; CHECK-LABEL: fct0:
|
||||||
; CHECK: ldur {{d[0-9]+}}, [{{x[0-9]+}}, #3]
|
; 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
|
ret <1 x i64> %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,7 +278,7 @@ define <2 x i32> @fct1() nounwind readonly ssp {
|
|||||||
entry:
|
entry:
|
||||||
; CHECK-LABEL: fct1:
|
; CHECK-LABEL: fct1:
|
||||||
; CHECK: ldur {{d[0-9]+}}, [{{x[0-9]+}}, #3]
|
; 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
|
ret <2 x i32> %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,7 +286,7 @@ define <4 x i16> @fct2() nounwind readonly ssp {
|
|||||||
entry:
|
entry:
|
||||||
; CHECK-LABEL: fct2:
|
; CHECK-LABEL: fct2:
|
||||||
; CHECK: ldur {{d[0-9]+}}, [{{x[0-9]+}}, #3]
|
; 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
|
ret <4 x i16> %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -294,7 +294,7 @@ define <8 x i8> @fct3() nounwind readonly ssp {
|
|||||||
entry:
|
entry:
|
||||||
; CHECK-LABEL: fct3:
|
; CHECK-LABEL: fct3:
|
||||||
; CHECK: ldur {{d[0-9]+}}, [{{x[0-9]+}}, #3]
|
; 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
|
ret <8 x i8> %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ define <2 x i64> @fct4() nounwind readonly ssp {
|
|||||||
entry:
|
entry:
|
||||||
; CHECK-LABEL: fct4:
|
; CHECK-LABEL: fct4:
|
||||||
; CHECK: ldur {{q[0-9]+}}, [{{x[0-9]+}}, #3]
|
; 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
|
ret <2 x i64> %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -310,7 +310,7 @@ define <4 x i32> @fct5() nounwind readonly ssp {
|
|||||||
entry:
|
entry:
|
||||||
; CHECK-LABEL: fct5:
|
; CHECK-LABEL: fct5:
|
||||||
; CHECK: ldur {{q[0-9]+}}, [{{x[0-9]+}}, #3]
|
; 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
|
ret <4 x i32> %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,7 +318,7 @@ define <8 x i16> @fct6() nounwind readonly ssp {
|
|||||||
entry:
|
entry:
|
||||||
; CHECK-LABEL: fct6:
|
; CHECK-LABEL: fct6:
|
||||||
; CHECK: ldur {{q[0-9]+}}, [{{x[0-9]+}}, #3]
|
; 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
|
ret <8 x i16> %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -326,7 +326,7 @@ define <16 x i8> @fct7() nounwind readonly ssp {
|
|||||||
entry:
|
entry:
|
||||||
; CHECK-LABEL: fct7:
|
; CHECK-LABEL: fct7:
|
||||||
; CHECK: ldur {{q[0-9]+}}, [{{x[0-9]+}}, #3]
|
; 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
|
ret <16 x i8> %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -335,8 +335,8 @@ entry:
|
|||||||
; CHECK-LABEL: fct8:
|
; CHECK-LABEL: fct8:
|
||||||
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
; 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
|
%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]* @str, i64 0, i64 4) 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,8 +345,8 @@ entry:
|
|||||||
; CHECK-LABEL: fct9:
|
; CHECK-LABEL: fct9:
|
||||||
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
; 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
|
%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]* @str, i64 0, i64 4) 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -355,8 +355,8 @@ entry:
|
|||||||
; CHECK-LABEL: fct10:
|
; CHECK-LABEL: fct10:
|
||||||
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
; 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
|
%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]* @str, i64 0, i64 4) 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -365,8 +365,8 @@ entry:
|
|||||||
; CHECK-LABEL: fct11:
|
; CHECK-LABEL: fct11:
|
||||||
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
; CHECK: ldur [[DESTREG:d[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
; 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
|
%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]* @str, i64 0, i64 4) 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -375,8 +375,8 @@ entry:
|
|||||||
; CHECK-LABEL: fct12:
|
; CHECK-LABEL: fct12:
|
||||||
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
; 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
|
%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]* @str, i64 0, i64 4) 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,8 +385,8 @@ entry:
|
|||||||
; CHECK-LABEL: fct13:
|
; CHECK-LABEL: fct13:
|
||||||
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
; 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
|
%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]* @str, i64 0, i64 4) 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -395,8 +395,8 @@ entry:
|
|||||||
; CHECK-LABEL: fct14:
|
; CHECK-LABEL: fct14:
|
||||||
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
; 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
|
%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]* @str, i64 0, i64 4) 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -405,8 +405,8 @@ entry:
|
|||||||
; CHECK-LABEL: fct15:
|
; CHECK-LABEL: fct15:
|
||||||
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
; CHECK: ldur [[DESTREG:q[0-9]+]], {{\[}}[[BASEREG:x[0-9]+]], #3]
|
||||||
; CHECK: stur [[DESTREG]], {{\[}}[[BASEREG]], #4]
|
; 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
|
%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]* @str, i64 0, i64 4) 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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,12 +30,12 @@ invoke.cont7:
|
|||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
if.end50.thread:
|
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], [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 128)
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
invoke.cont33:
|
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
|
unreachable
|
||||||
|
|
||||||
invoke.cont41:
|
invoke.cont41:
|
||||||
@ -51,7 +51,7 @@ lpad40:
|
|||||||
br label %finally.catchall
|
br label %finally.catchall
|
||||||
|
|
||||||
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
|
unreachable
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ main_:
|
|||||||
%DHSelect = select i1 %tmp8, i32 %tmp9, i32 %tmp10
|
%DHSelect = select i1 %tmp8, i32 %tmp9, i32 %tmp10
|
||||||
store i32 %DHSelect, i32* %i32X, align 4
|
store i32 %DHSelect, i32* %i32X, align 4
|
||||||
%tmp15 = load i32, 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
|
ret i32 0
|
||||||
|
|
||||||
; CHECK: main:
|
; CHECK: main:
|
||||||
|
@ -10,25 +10,25 @@ target triple = "arm64-apple-ios7.0.0"
|
|||||||
; Function Attrs: nounwind ssp
|
; Function Attrs: nounwind ssp
|
||||||
define internal void @initialize() #0 {
|
define internal void @initialize() #0 {
|
||||||
%1 = tail call i32 bitcast (i32 (...)* @calc to i32 ()*)() #2
|
%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
|
%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
|
%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
|
%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
|
%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
|
%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
|
%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
|
%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
|
%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
|
%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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,32 +36,32 @@ declare i32 @calc(...)
|
|||||||
|
|
||||||
; Function Attrs: nounwind ssp
|
; Function Attrs: nounwind ssp
|
||||||
define internal void @calculate() #0 {
|
define internal void @calculate() #0 {
|
||||||
%1 = load i32, i32* getelementptr inbounds ([5 x i32]* @bar, 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]* @baz, 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
|
%3 = mul nsw i32 %2, %1
|
||||||
store i32 %3, i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 0), 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]* @bar, i64 0, i64 1), 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]* @baz, 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
|
%6 = mul nsw i32 %5, %4
|
||||||
store i32 %6, i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 1), 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]* @bar, i64 0, i64 2), 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]* @baz, 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
|
%9 = mul nsw i32 %8, %7
|
||||||
store i32 %9, i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 2), 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]* @bar, i64 0, i64 3), 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]* @baz, 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
|
%12 = mul nsw i32 %11, %10
|
||||||
store i32 %12, i32* getelementptr inbounds ([5 x i32]* @foo, i64 0, i64 3), 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]* @bar, i64 0, i64 4), 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]* @baz, 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
|
%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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
; Function Attrs: nounwind readnone ssp
|
; Function Attrs: nounwind readnone ssp
|
||||||
define internal i32* @returnFoo() #1 {
|
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
|
;CHECK: .type _MergedGlobals,@object // @_MergedGlobals
|
||||||
|
@ -13,7 +13,7 @@ define void @test_inlineasm_globaladdress() {
|
|||||||
; CHECK-LABEL: test_inlineasm_globaladdress_offset:
|
; CHECK-LABEL: test_inlineasm_globaladdress_offset:
|
||||||
; CHECK: b {{_?}}test_symbol+4
|
; CHECK: b {{_?}}test_symbol+4
|
||||||
define void @test_inlineasm_globaladdress_offset() {
|
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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,13 +15,13 @@ define void @test_i16_2cmp_signed_1() {
|
|||||||
; CHECK-NOT: cmp
|
; CHECK-NOT: cmp
|
||||||
; CHECK: b.ne
|
; CHECK: b.ne
|
||||||
entry:
|
entry:
|
||||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 1), 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* @cost_s_i8_i16, i64 0, i32 2), 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
|
%cmp = icmp sgt i16 %0, %1
|
||||||
br i1 %cmp, label %if.then, label %if.else
|
br i1 %cmp, label %if.then, label %if.else
|
||||||
|
|
||||||
if.then: ; preds = %entry
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.else: ; preds = %entry
|
if.else: ; preds = %entry
|
||||||
@ -29,7 +29,7 @@ if.else: ; preds = %entry
|
|||||||
br i1 %cmp5, label %if.then7, label %if.end8
|
br i1 %cmp5, label %if.then7, label %if.end8
|
||||||
|
|
||||||
if.then7: ; preds = %if.else
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||||
@ -43,13 +43,13 @@ define void @test_i16_2cmp_signed_2() {
|
|||||||
; CHECK-NOT: cmp
|
; CHECK-NOT: cmp
|
||||||
; CHECK: b.ge
|
; CHECK: b.ge
|
||||||
entry:
|
entry:
|
||||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_signed_i16* @cost_s_i8_i16, i64 0, i32 1), 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* @cost_s_i8_i16, i64 0, i32 2), 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
|
%cmp = icmp sgt i16 %0, %1
|
||||||
br i1 %cmp, label %if.then, label %if.else
|
br i1 %cmp, label %if.then, label %if.else
|
||||||
|
|
||||||
if.then: ; preds = %entry
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.else: ; preds = %entry
|
if.else: ; preds = %entry
|
||||||
@ -57,7 +57,7 @@ if.else: ; preds = %entry
|
|||||||
br i1 %cmp5, label %if.then7, label %if.end8
|
br i1 %cmp5, label %if.then7, label %if.end8
|
||||||
|
|
||||||
if.then7: ; preds = %if.else
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||||
@ -71,13 +71,13 @@ define void @test_i16_2cmp_unsigned_1() {
|
|||||||
; CHECK-NOT: cmp
|
; CHECK-NOT: cmp
|
||||||
; CHECK: b.ne
|
; CHECK: b.ne
|
||||||
entry:
|
entry:
|
||||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 1), 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* @cost_u_i16, i64 0, i32 2), 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
|
%cmp = icmp ugt i16 %0, %1
|
||||||
br i1 %cmp, label %if.then, label %if.else
|
br i1 %cmp, label %if.then, label %if.else
|
||||||
|
|
||||||
if.then: ; preds = %entry
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.else: ; preds = %entry
|
if.else: ; preds = %entry
|
||||||
@ -85,7 +85,7 @@ if.else: ; preds = %entry
|
|||||||
br i1 %cmp5, label %if.then7, label %if.end8
|
br i1 %cmp5, label %if.then7, label %if.end8
|
||||||
|
|
||||||
if.then7: ; preds = %if.else
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||||
@ -99,13 +99,13 @@ define void @test_i16_2cmp_unsigned_2() {
|
|||||||
; CHECK-NOT: cmp
|
; CHECK-NOT: cmp
|
||||||
; CHECK: b.hs
|
; CHECK: b.hs
|
||||||
entry:
|
entry:
|
||||||
%0 = load i16, i16* getelementptr inbounds (%struct.s_unsigned_i16* @cost_u_i16, i64 0, i32 1), 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* @cost_u_i16, i64 0, i32 2), 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
|
%cmp = icmp ugt i16 %0, %1
|
||||||
br i1 %cmp, label %if.then, label %if.else
|
br i1 %cmp, label %if.then, label %if.else
|
||||||
|
|
||||||
if.then: ; preds = %entry
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.else: ; preds = %entry
|
if.else: ; preds = %entry
|
||||||
@ -113,7 +113,7 @@ if.else: ; preds = %entry
|
|||||||
br i1 %cmp5, label %if.then7, label %if.end8
|
br i1 %cmp5, label %if.then7, label %if.end8
|
||||||
|
|
||||||
if.then7: ; preds = %if.else
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||||
@ -136,13 +136,13 @@ define void @test_i8_2cmp_signed_1() {
|
|||||||
; CHECK-NOT: cmp
|
; CHECK-NOT: cmp
|
||||||
; CHECK: b.ne
|
; CHECK: b.ne
|
||||||
entry:
|
entry:
|
||||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 1), 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* @cost_s, i64 0, i32 2), 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
|
%cmp = icmp sgt i8 %0, %1
|
||||||
br i1 %cmp, label %if.then, label %if.else
|
br i1 %cmp, label %if.then, label %if.else
|
||||||
|
|
||||||
if.then: ; preds = %entry
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.else: ; preds = %entry
|
if.else: ; preds = %entry
|
||||||
@ -150,7 +150,7 @@ if.else: ; preds = %entry
|
|||||||
br i1 %cmp5, label %if.then7, label %if.end8
|
br i1 %cmp5, label %if.then7, label %if.end8
|
||||||
|
|
||||||
if.then7: ; preds = %if.else
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||||
@ -164,13 +164,13 @@ define void @test_i8_2cmp_signed_2() {
|
|||||||
; CHECK-NOT: cmp
|
; CHECK-NOT: cmp
|
||||||
; CHECK: b.ge
|
; CHECK: b.ge
|
||||||
entry:
|
entry:
|
||||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_signed_i8* @cost_s, i64 0, i32 1), 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* @cost_s, i64 0, i32 2), 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
|
%cmp = icmp sgt i8 %0, %1
|
||||||
br i1 %cmp, label %if.then, label %if.else
|
br i1 %cmp, label %if.then, label %if.else
|
||||||
|
|
||||||
if.then: ; preds = %entry
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.else: ; preds = %entry
|
if.else: ; preds = %entry
|
||||||
@ -178,7 +178,7 @@ if.else: ; preds = %entry
|
|||||||
br i1 %cmp5, label %if.then7, label %if.end8
|
br i1 %cmp5, label %if.then7, label %if.end8
|
||||||
|
|
||||||
if.then7: ; preds = %if.else
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||||
@ -192,13 +192,13 @@ define void @test_i8_2cmp_unsigned_1() {
|
|||||||
; CHECK-NOT: cmp
|
; CHECK-NOT: cmp
|
||||||
; CHECK: b.ne
|
; CHECK: b.ne
|
||||||
entry:
|
entry:
|
||||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 1), 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* @cost_u_i8, i64 0, i32 2), 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
|
%cmp = icmp ugt i8 %0, %1
|
||||||
br i1 %cmp, label %if.then, label %if.else
|
br i1 %cmp, label %if.then, label %if.else
|
||||||
|
|
||||||
if.then: ; preds = %entry
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.else: ; preds = %entry
|
if.else: ; preds = %entry
|
||||||
@ -206,7 +206,7 @@ if.else: ; preds = %entry
|
|||||||
br i1 %cmp5, label %if.then7, label %if.end8
|
br i1 %cmp5, label %if.then7, label %if.end8
|
||||||
|
|
||||||
if.then7: ; preds = %if.else
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||||
@ -220,13 +220,13 @@ define void @test_i8_2cmp_unsigned_2() {
|
|||||||
; CHECK-NOT: cmp
|
; CHECK-NOT: cmp
|
||||||
; CHECK: b.hs
|
; CHECK: b.hs
|
||||||
entry:
|
entry:
|
||||||
%0 = load i8, i8* getelementptr inbounds (%struct.s_unsigned_i8* @cost_u_i8, i64 0, i32 1), 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* @cost_u_i8, i64 0, i32 2), 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
|
%cmp = icmp ugt i8 %0, %1
|
||||||
br i1 %cmp, label %if.then, label %if.else
|
br i1 %cmp, label %if.then, label %if.else
|
||||||
|
|
||||||
if.then: ; preds = %entry
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.else: ; preds = %entry
|
if.else: ; preds = %entry
|
||||||
@ -234,7 +234,7 @@ if.else: ; preds = %entry
|
|||||||
br i1 %cmp5, label %if.then7, label %if.end8
|
br i1 %cmp5, label %if.then7, label %if.end8
|
||||||
|
|
||||||
if.then7: ; preds = %if.else
|
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
|
br label %if.end8
|
||||||
|
|
||||||
if.end8: ; preds = %if.else, %if.then7, %if.then
|
if.end8: ; preds = %if.else, %if.then7, %if.then
|
||||||
|
@ -10,7 +10,7 @@ define internal void @_ZN1B1iEv(%struct.B* %this) {
|
|||||||
entry:
|
entry:
|
||||||
%tmp1 = getelementptr %struct.B, %struct.B* %this, i32 0, i32 0 ; <i32*> [#uses=1]
|
%tmp1 = getelementptr %struct.B, %struct.B* %this, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||||
%tmp2 = load i32, i32* %tmp1 ; <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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ define internal void @_ZN1B1jEv(%struct.B* %this) {
|
|||||||
entry:
|
entry:
|
||||||
%tmp1 = getelementptr %struct.B, %struct.B* %this, i32 0, i32 0 ; <i32*> [#uses=1]
|
%tmp1 = getelementptr %struct.B, %struct.B* %this, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||||
%tmp2 = load i32, i32* %tmp1 ; <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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,15 +9,15 @@ target triple = "arm-apple-darwin8"
|
|||||||
|
|
||||||
define fastcc void @EvaluateDevelopment() {
|
define fastcc void @EvaluateDevelopment() {
|
||||||
entry:
|
entry:
|
||||||
%tmp7 = load i64, i64* getelementptr (%struct.CHESS_POSITION* @search, i32 0, i32 7) ; <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* @search, i32 0, i32 0) ; <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* @search, i32 0, i32 1) ; <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]
|
%tmp53 = or i64 %tmp52, %tmp50 ; <i64> [#uses=1]
|
||||||
%tmp57.b = load i1, i1* @rank_mask.1.b ; <i1> [#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]
|
%tmp57 = select i1 %tmp57.b, i64 71776119061217280, i64 0 ; <i64> [#uses=1]
|
||||||
%tmp58 = and i64 %tmp57, %tmp7 ; <i64> [#uses=1]
|
%tmp58 = and i64 %tmp57, %tmp7 ; <i64> [#uses=1]
|
||||||
%tmp59 = lshr i64 %tmp58, 8 ; <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]
|
%tmp64 = or i64 %tmp63, 0 ; <i64> [#uses=1]
|
||||||
%tmp65 = and i64 %tmp59, %tmp53 ; <i64> [#uses=1]
|
%tmp65 = and i64 %tmp59, %tmp53 ; <i64> [#uses=1]
|
||||||
%tmp66 = and i64 %tmp65, %tmp64 ; <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]
|
%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]
|
%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]
|
%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
|
br i1 false, label %cond_true.i632.i, label %Ut_TraceMsg.exit648.i
|
||||||
|
|
||||||
cond_true.i632.i: ; preds = %cond_true1272
|
cond_true.i632.i: ; preds = %cond_true1272
|
||||||
|
@ -46,7 +46,7 @@ bb102.i: ; preds = %cond_next212.i
|
|||||||
cond_true110.i: ; preds = %bb102.i
|
cond_true110.i: ; preds = %bb102.i
|
||||||
%tmp116.i = getelementptr i8*, i8** %argv_addr.2321.0.i, i32 2 ; <i8**> [#uses=1]
|
%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]
|
%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
|
ret i32 0
|
||||||
|
|
||||||
cond_next123.i: ; preds = %bb102.i
|
cond_next123.i: ; preds = %bb102.i
|
||||||
|
@ -11,9 +11,9 @@ bb74.i: ; preds = %bb88.i, %bb74.i, %entry
|
|||||||
bb88.i: ; preds = %bb74.i
|
bb88.i: ; preds = %bb74.i
|
||||||
br i1 false, label %mandel.exit, label %bb74.i
|
br i1 false, label %mandel.exit, label %bb74.i
|
||||||
mandel.exit: ; preds = %bb88.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]
|
%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
|
ret i32 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ bb17.i: ; preds = %cond_next119.i
|
|||||||
cond_true53.i: ; preds = %bb17.i
|
cond_true53.i: ; preds = %bb17.i
|
||||||
ret { i16, %struct.rnode* }* null
|
ret { i16, %struct.rnode* }* null
|
||||||
cond_false99.i: ; preds = %bb17.i
|
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*
|
%tmp106.i = bitcast i8* %malloccall to %struct.ch_set*
|
||||||
br i1 false, label %bb126.i, label %cond_next119.i
|
br i1 false, label %bb126.i, label %cond_next119.i
|
||||||
cond_next119.i: ; preds = %cond_false99.i, %bb42
|
cond_next119.i: ; preds = %cond_false99.i, %bb42
|
||||||
|
@ -24,7 +24,7 @@ define void @main(i32 %argc, i8** %argv) noreturn {
|
|||||||
entry:
|
entry:
|
||||||
br i1 false, label %cond_next48, label %cond_false674
|
br i1 false, label %cond_next48, label %cond_false674
|
||||||
cond_next48: ; preds = %entry
|
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
|
br i1 false, label %bb220.i.i.i, label %bb62.preheader.i.i.i
|
||||||
bb62.preheader.i.i.i: ; preds = %cond_next48
|
bb62.preheader.i.i.i: ; preds = %cond_next48
|
||||||
ret void
|
ret void
|
||||||
@ -53,7 +53,7 @@ bb177.i393.i: ; preds = %bb40.i.i
|
|||||||
bb192.i.i: ; preds = %bb177.i393.i
|
bb192.i.i: ; preds = %bb177.i393.i
|
||||||
ret void
|
ret void
|
||||||
cond_false373.i.i: ; preds = %bb.i350.i
|
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
|
br i1 false, label %cond_true380.i.i, label %cond_next602.i.i
|
||||||
cond_true380.i.i: ; preds = %cond_false373.i.i
|
cond_true380.i.i: ; preds = %cond_false373.i.i
|
||||||
%tmp394.i418.i = add i32 %cell.0.i.i, 1 ; <i32> [#uses=1]
|
%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
|
br label %bb620.i.i
|
||||||
bb620.i.i: ; preds = %bb620.i.i, %bb609.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]
|
%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]
|
%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]
|
%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]
|
%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
|
br i1 %tmp650.i468.i, label %bb653.i.i.loopexit, label %bb620.i.i
|
||||||
bb653.i.i.loopexit: ; preds = %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
|
br i1 false, label %init_orig_buffers.exit, label %cond_true.i29
|
||||||
|
|
||||||
cond_true.i29: ; preds = %entry
|
cond_true.i29: ; preds = %entry
|
||||||
%tmp17.i = load i32, i32* getelementptr (%struct.ImageParameters* @images, i32 0, i32 20), 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* @images, i32 0, i32 16), 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]
|
%tmp8.i.i = select i1 false, i32 1, i32 0 ; <i32> [#uses=1]
|
||||||
br label %bb.i8.us.i
|
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 {
|
define fastcc void @init_global_buffers() nounwind {
|
||||||
entry:
|
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]
|
%tmp158 = tail call i8* @calloc( i32 0, i32 4 ) ; <i8*> [#uses=0]
|
||||||
br i1 false, label %cond_true166, label %bb190.preheader
|
br i1 false, label %cond_true166, label %bb190.preheader
|
||||||
|
|
||||||
|
@ -8,6 +8,6 @@
|
|||||||
|
|
||||||
define i32 @__gcov_close() nounwind {
|
define i32 @__gcov_close() nounwind {
|
||||||
entry:
|
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
|
ret i32 %0
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ bb244: ; preds = %bb122, %bb122, %bb122, %bb122, %bb122, %bb122, %bb122, %bb122
|
|||||||
br i1 %0, label %bb435, label %bb433
|
br i1 %0, label %bb435, label %bb433
|
||||||
|
|
||||||
bb394: ; preds = %bb122
|
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
|
br label %bb396
|
||||||
|
|
||||||
bb396: ; preds = %bb394, %bb131, %bb122, %bb122, %bb122, %bb122, %RESUME
|
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 {
|
define i16 @fn16(i16 %arg0.0, <2 x i16> %arg1, i16 %arg2.0) nounwind {
|
||||||
entry:
|
entry:
|
||||||
store <2 x i16> %arg1, <2 x i16>* null
|
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
|
ret i16 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ bb1: ; preds = %bb
|
|||||||
|
|
||||||
bb3: ; preds = %bb1, %bb
|
bb3: ; preds = %bb1, %bb
|
||||||
%iftmp.0.0 = phi i32 [ 0, %bb1 ], [ -1, %bb ] ; <i32> [#uses=1]
|
%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]
|
%2 = load %struct.List*, %struct.List** null, align 4 ; <%struct.List*> [#uses=2]
|
||||||
%phitmp = icmp eq %struct.List* %2, null ; <i1> [#uses=1]
|
%phitmp = icmp eq %struct.List* %2, null ; <i1> [#uses=1]
|
||||||
br i1 %phitmp, label %bb5, label %bb
|
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
|
br i1 undef, label %bb5.i, label %bb1.outer2.i.i.outer
|
||||||
|
|
||||||
bb5.i: ; preds = %Fft.exit.i
|
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
|
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
|
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]
|
%4 = sitofp i32 undef to double ; <double> [#uses=1]
|
||||||
%5 = fdiv double %4, 1.000000e+01 ; <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]
|
%7 = load i32, i32* @al_len, align 4 ; <i32> [#uses=1]
|
||||||
%8 = load i32, i32* @no_mat, 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]
|
%9 = load i32, i32* @no_mis, align 4 ; <i32> [#uses=1]
|
||||||
%10 = sub i32 %7, %8 ; <i32> [#uses=1]
|
%10 = sub i32 %7, %8 ; <i32> [#uses=1]
|
||||||
%11 = sub i32 %10, %9 ; <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]
|
%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]* @"\01LC17", i32 0, i32 0), i32 undef, i32 %1, i32 undef, i32 undef) 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
|
br i1 undef, label %bb15, label %bb12
|
||||||
|
|
||||||
bb12: ; preds = %bb11
|
bb12: ; preds = %bb11
|
||||||
|
@ -42,10 +42,10 @@ bb11: ; preds = %bb9
|
|||||||
store i32 0, i32* @no_mis, align 4
|
store i32 0, i32* @no_mis, align 4
|
||||||
%4 = getelementptr i8, i8* %B, i32 %0 ; <i8*> [#uses=1]
|
%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
|
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]
|
%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]
|
%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]* @"\01LC17", i32 0, i32 0), i32 undef, i32 %1, i32 undef, i32 %2) 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
|
br i1 undef, label %bb15, label %bb12
|
||||||
|
|
||||||
bb12: ; preds = %bb11
|
bb12: ; preds = %bb11
|
||||||
|
@ -1012,7 +1012,7 @@ bb7: ; preds = %bb
|
|||||||
br i1 %764, label %bb10, label %bb11
|
br i1 %764, label %bb10, label %bb11
|
||||||
|
|
||||||
bb8: ; preds = %entry
|
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
|
call void @exit(i32 -1) noreturn nounwind
|
||||||
unreachable
|
unreachable
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ entry:
|
|||||||
br i1 %p, label %bb8, label %bb1
|
br i1 %p, label %bb8, label %bb1
|
||||||
|
|
||||||
bb1: ; preds = %entry
|
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*
|
%0 = bitcast i8* %malloccall to %struct.Village*
|
||||||
%exp2 = call double @ldexp(double 1.000000e+00, i32 %level) nounwind ; <double> [#uses=1]
|
%exp2 = call double @ldexp(double 1.000000e+00, i32 %level) nounwind ; <double> [#uses=1]
|
||||||
%.c = fptosi double %exp2 to i32 ; <i32> [#uses=1]
|
%.c = fptosi double %exp2 to i32 ; <i32> [#uses=1]
|
||||||
|
@ -8,7 +8,7 @@ entry:
|
|||||||
;CHECK: [sp, #8]
|
;CHECK: [sp, #8]
|
||||||
;CHECK: [sp, #12]
|
;CHECK: [sp, #12]
|
||||||
;CHECK: [sp]
|
;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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ cond_true1369.preheader: ; preds = %cond_true1254
|
|||||||
ret void
|
ret void
|
||||||
|
|
||||||
bb1567: ; preds = %cond_true1254
|
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]
|
%tmp1572 = tail call fastcc i32 @FirstOne() ; <i32> [#uses=1]
|
||||||
%tmp1594 = load i32, i32* undef ; <i32> [#uses=1]
|
%tmp1594 = load i32, i32* undef ; <i32> [#uses=1]
|
||||||
%tmp1594.upgrd.5 = trunc i32 %tmp1594 to i8 ; <i8> [#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]
|
%tmp21 = load i32, i32* undef ; <i32> [#uses=1]
|
||||||
%0 = mul i32 1, %tmp21 ; <i32> [#uses=1]
|
%0 = mul i32 1, %tmp21 ; <i32> [#uses=1]
|
||||||
%vla22 = alloca i8, i32 %0, align 1 ; <i8*> [#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
|
br i1 undef, label %if.then, label %if.end36
|
||||||
|
|
||||||
if.then: ; preds = %entry
|
if.then: ; preds = %entry
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
define void @TW_oldinput(%struct.FILE* nocapture %fp) nounwind {
|
define void @TW_oldinput(%struct.FILE* nocapture %fp) nounwind {
|
||||||
entry:
|
entry:
|
||||||
%xcenter = alloca i32, align 4 ; <i32*> [#uses=2]
|
%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]
|
%1 = icmp eq i32 %0, 4 ; <i1> [#uses=1]
|
||||||
br i1 %1, label %bb, label %return
|
br i1 %1, label %bb, label %return
|
||||||
|
|
||||||
@ -137,7 +137,7 @@ bb322: ; preds = %bb248
|
|||||||
br i1 undef, label %bb248, label %bb445
|
br i1 undef, label %bb248, label %bb445
|
||||||
|
|
||||||
bb445: ; preds = %bb322, %bb10, %bb
|
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]
|
%50 = icmp eq i32 %49, 4 ; <i1> [#uses=1]
|
||||||
br i1 %50, label %bb, label %return
|
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
|
br i1 %cmp19, label %cond.false, label %cond.end
|
||||||
|
|
||||||
cond.false: ; preds = %if.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
|
unreachable
|
||||||
|
|
||||||
cond.end: ; preds = %if.end
|
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]
|
%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
|
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]
|
%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
|
ret i32 undef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ target triple = "thumbv7-apple-darwin10.0.0"
|
|||||||
@d = internal global i32 0, align 4 ; <i32*> [#uses=6]
|
@d = internal global i32 0, align 4 ; <i32*> [#uses=6]
|
||||||
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8* ; <i8**> [#uses=1]
|
@_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]
|
@_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]
|
@.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]
|
@.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]
|
@.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:
|
entry:
|
||||||
%tmp.i = getelementptr inbounds %struct.A, %struct.A* %this, i32 0, i32 0 ; <i32*> [#uses=1]
|
%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]
|
%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]
|
%tmp3.i = load i32, i32* @d ; <i32> [#uses=1]
|
||||||
%inc.i = add nsw i32 %tmp3.i, 1 ; <i32> [#uses=1]
|
%inc.i = add nsw i32 %tmp3.i, 1 ; <i32> [#uses=1]
|
||||||
store i32 %inc.i, i32* @d
|
store i32 %inc.i, i32* @d
|
||||||
@ -42,11 +42,11 @@ declare void @__cxa_throw(i8*, i8*, i8*)
|
|||||||
|
|
||||||
define i32 @main() ssp {
|
define i32 @main() ssp {
|
||||||
entry:
|
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]
|
%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]
|
%tmp2.i.i.i = bitcast i8* %exception.i to i32* ; <i32*> [#uses=1]
|
||||||
store i32 1, i32* %tmp2.i.i.i
|
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
|
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
|
to label %.noexc unwind label %lpad
|
||||||
|
|
||||||
@ -55,16 +55,16 @@ entry:
|
|||||||
|
|
||||||
try.cont: ; preds = %lpad
|
try.cont: ; preds = %lpad
|
||||||
%0 = tail call i8* @__cxa_get_exception_ptr(i8* %exn) nounwind ; <i8*> [#uses=0]
|
%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]
|
%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]
|
%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]* @.str4, i32 0, i32 0), i32 2) nounwind ; <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]
|
%tmp3.i.i = load i32, i32* @d ; <i32> [#uses=1]
|
||||||
%inc.i.i4 = add nsw i32 %tmp3.i.i, 1 ; <i32> [#uses=1]
|
%inc.i.i4 = add nsw i32 %tmp3.i.i, 1 ; <i32> [#uses=1]
|
||||||
store i32 %inc.i.i4, i32* @d
|
store i32 %inc.i.i4, i32* @d
|
||||||
tail call void @__cxa_end_catch()
|
tail call void @__cxa_end_catch()
|
||||||
%tmp13 = load i32, i32* @d ; <i32> [#uses=1]
|
%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]
|
%tmp16 = load i32, i32* @d ; <i32> [#uses=1]
|
||||||
%cmp = icmp ne i32 %tmp16, 2 ; <i1> [#uses=1]
|
%cmp = icmp ne i32 %tmp16, 2 ; <i1> [#uses=1]
|
||||||
%conv = zext i1 %cmp to i32 ; <i32> [#uses=1]
|
%conv = zext i1 %cmp to i32 ; <i32> [#uses=1]
|
||||||
|
@ -48,7 +48,7 @@ bb1:
|
|||||||
%tmp10 = zext i32 %tmp6 to i64
|
%tmp10 = zext i32 %tmp6 to i64
|
||||||
%tmp11 = zext i32 %tmp5 to i64
|
%tmp11 = zext i32 %tmp5 to i64
|
||||||
%tmp12 = mul nsw i64 %tmp10, %tmp11
|
%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
|
br label %bb8
|
||||||
|
|
||||||
bb4:
|
bb4:
|
||||||
|
@ -15,14 +15,14 @@ define hidden void @foo() {
|
|||||||
; CHECK: ldr.w
|
; CHECK: ldr.w
|
||||||
; CHECK-NOT: ldm
|
; CHECK-NOT: ldm
|
||||||
entry:
|
entry:
|
||||||
%tmp13 = load i32, i32* getelementptr inbounds (%struct.InformationBlock* @infoBlock, i32 0, i32 1, i32 0, i32 0), 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* @infoBlock, i32 0, i32 1, i32 0, i32 1), 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* @infoBlock, i32 0, i32 1, i32 0, i32 2), 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* @infoBlock, i32 0, i32 1, i32 0, i32 3), 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* @infoBlock, i32 0, i32 2, i32 0, i32 0), 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* @infoBlock, i32 0, i32 2, i32 0, i32 1), 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* @infoBlock, i32 0, i32 2, i32 0, i32 2), 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* @infoBlock, i32 0, i32 2, i32 0, i32 3), 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
|
%insert21 = insertvalue [4 x i32] undef, i32 %tmp13, 0
|
||||||
%insert23 = insertvalue [4 x i32] %insert21, i32 %tmp15, 1
|
%insert23 = insertvalue [4 x i32] %insert21, i32 %tmp15, 1
|
||||||
%insert25 = insertvalue [4 x i32] %insert23, i32 %tmp17, 2
|
%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
|
@foo = external global %0, align 16
|
||||||
|
|
||||||
define arm_aapcs_vfpcc void @bar(float, i1 zeroext, i1 zeroext) nounwind {
|
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
|
%5 = extractelement <4 x float> %4, i32 0
|
||||||
%6 = extractelement <4 x float> %4, i32 1
|
%6 = extractelement <4 x float> %4, i32 1
|
||||||
%7 = extractelement <4 x float> %4, i32 2
|
%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:
|
entry:
|
||||||
%a = getelementptr inbounds %struct_t, %struct_t* %val, i32 0, i32 0
|
%a = getelementptr inbounds %struct_t, %struct_t* %val, i32 0, i32 0
|
||||||
%0 = load double, double* %a
|
%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
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ entry:
|
|||||||
%conv = sext i16 %b to i32
|
%conv = sext i16 %b to i32
|
||||||
%conv1 = sext i8 %E to i32
|
%conv1 = sext i8 %E to i32
|
||||||
%call = tail call i32 (i8*, ...)* @printf(
|
%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 %a, ; --> R1
|
||||||
i32 %conv, ; --> R2
|
i32 %conv, ; --> R2
|
||||||
double %C, ; --> SP, NCRN := R4
|
double %C, ; --> SP, NCRN := R4
|
||||||
|
@ -6,7 +6,7 @@ declare arm_aapcs_vfpcc void @callee(i8*)
|
|||||||
|
|
||||||
define arm_aapcs_vfpcc void @function() {
|
define arm_aapcs_vfpcc void @function() {
|
||||||
entry:
|
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
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
|
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
|
||||||
@_ZTS3Foo = linkonce_odr constant [5 x i8] c"3Foo\00"
|
@_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() {
|
define i32 @main() {
|
||||||
entry:
|
entry:
|
||||||
|
@ -10,10 +10,10 @@ define i32 @main() {
|
|||||||
entry:
|
entry:
|
||||||
%retval = alloca i32, align 4
|
%retval = alloca i32, align 4
|
||||||
store i32 0, i32* %retval
|
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))
|
%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]* @buffer, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8]* @.str1, i32 0, i32 0)) #3
|
%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]* @buffer, i32 0, i32 0), i8* getelementptr inbounds (i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0), i32 32)) #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]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8]* @buffer, i32 0, i32 0))
|
%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
|
ret i32 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,8 +21,8 @@ entry:
|
|||||||
%letter = alloca i8 ; <i8*> [#uses=0]
|
%letter = alloca i8 ; <i8*> [#uses=0]
|
||||||
%prodvers = alloca [256 x i8] ; <[256 x i8]*> [#uses=1]
|
%prodvers = alloca [256 x i8] ; <[256 x i8]*> [#uses=1]
|
||||||
%buildver = alloca [256 x i8] ; <[256 x i8]*> [#uses=0]
|
%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]
|
%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
|
unreachable
|
||||||
}
|
}
|
||||||
|
@ -23,8 +23,8 @@ while.body37: ; preds = %while.body37, %entr
|
|||||||
br i1 false, label %while.end42, label %while.body37
|
br i1 false, label %while.end42, label %while.body37
|
||||||
|
|
||||||
while.end42: ; preds = %while.body37, %entry
|
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)
|
%. = 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]* @F_floatmul.man2, i32 0, i32 0), i8* getelementptr inbounds ([200 x i8]* @F_floatmul.man1, 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
|
tail call void bitcast (void (...)* @S_trimzeros to void (i8*)*)(i8* %.92) nounwind
|
||||||
%call47 = tail call i32 @strlen(i8* %.) nounwind
|
%call47 = tail call i32 @strlen(i8* %.) nounwind
|
||||||
unreachable
|
unreachable
|
||||||
|
@ -9,11 +9,11 @@
|
|||||||
declare void @bar(i32*)
|
declare void @bar(i32*)
|
||||||
|
|
||||||
define void @foo() {
|
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
|
%tst = icmp eq i32 %flag, 0
|
||||||
br i1 %tst, label %true, label %false
|
br i1 %tst, label %true, label %false
|
||||||
true:
|
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
|
ret void
|
||||||
false:
|
false:
|
||||||
ret void
|
ret void
|
||||||
|
@ -28,10 +28,10 @@ for.body9: ; preds = %for.body9, %entry
|
|||||||
for.end54: ; preds = %for.body9
|
for.end54: ; preds = %for.body9
|
||||||
%tmp115 = extractelement <4 x float> %add19, i32 1
|
%tmp115 = extractelement <4 x float> %add19, i32 1
|
||||||
%conv6.i75 = fpext float %tmp115 to double, !dbg !45
|
%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
|
%tmp116 = extractelement <4 x float> %add20, i32 1
|
||||||
%conv6.i76 = fpext float %tmp116 to double, !dbg !45
|
%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
|
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 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
|
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
|
%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
|
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 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
|
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
|
%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
|
ret i32 0, !dbg !33
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ entry:
|
|||||||
%0 = sitofp i32 %argc to double, !dbg !35
|
%0 = sitofp i32 %argc to double, !dbg !35
|
||||||
%1 = fadd double %0, 5.555552e+05, !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
|
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
|
%3 = getelementptr inbounds i8, i8* bitcast (i32 (i32, i8**)* @main to i8*), i32 %argc, !dbg !37
|
||||||
%4 = trunc i32 %argc to i8, !dbg !37
|
%4 = trunc i32 %argc to i8, !dbg !37
|
||||||
%5 = add i8 %4, 97, !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 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
|
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
|
%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
|
%8 = tail call i32 @printer(i8* %3, double %1, i8 zeroext %5) nounwind, !dbg !40
|
||||||
ret i32 0, !dbg !41
|
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
|
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
|
%tmp115 = extractelement <4 x float> %add19, i32 1
|
||||||
%conv6.i75 = fpext float %tmp115 to double, !dbg !45
|
%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
|
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
|
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
|
%conv = fpext float %val to double, !dbg !27
|
||||||
%conv3 = zext i8 %c to i32, !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
|
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
|
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
|
%conv = fpext float %val to double, !dbg !33
|
||||||
%conv3 = zext i8 %c to i32, !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
|
ret i32 0, !dbg !35
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ entry:
|
|||||||
%add = fadd double %conv, 5.555552e+05, !dbg !38
|
%add = fadd double %conv, 5.555552e+05, !dbg !38
|
||||||
%conv1 = fptrunc double %add to float, !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
|
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
|
%add.ptr = getelementptr i8, i8* bitcast (i32 (i32, i8**)* @main to i8*), i32 %argc, !dbg !40
|
||||||
%add5 = add nsw i32 %argc, 97, !dbg !40
|
%add5 = add nsw i32 %argc, 97, !dbg !40
|
||||||
%conv6 = trunc i32 %add5 to i8, !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
|
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
|
%conv.i = fpext float %conv1 to double, !dbg !44
|
||||||
%conv3.i = and i32 %add5, 255, !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
|
%call14 = tail call i32 @printer(i8* %add.ptr, float %conv1, i8 zeroext %conv6) optsize, !dbg !45
|
||||||
ret i32 0, !dbg !46
|
ret i32 0, !dbg !46
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ target triple = "armv5e--netbsd-eabi"
|
|||||||
|
|
||||||
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
|
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
|
||||||
@_ZTS9exception = linkonce_odr constant [11 x i8] c"9exception\00"
|
@_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 {
|
define void @f() uwtable {
|
||||||
%1 = alloca i8*
|
%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)
|
%tmp9 = call i8* @strcpy(i8* %tmp6, i8* %tag)
|
||||||
%tmp6.len = call i32 @strlen(i8* %tmp6)
|
%tmp6.len = call i32 @strlen(i8* %tmp6)
|
||||||
%tmp6.indexed = getelementptr i8, i8* %tmp6, i32 %tmp6.len
|
%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)
|
%tmp15 = call i8* @strcat(i8* %tmp6, i8* %contents)
|
||||||
call fastcc void @comment_add(%struct.comment* %vc, i8* %tmp6)
|
call fastcc void @comment_add(%struct.comment* %vc, i8* %tmp6)
|
||||||
ret void
|
ret void
|
||||||
|
@ -14,7 +14,7 @@ entry:
|
|||||||
; ARM: t1
|
; ARM: t1
|
||||||
; THUMB: t1
|
; THUMB: t1
|
||||||
%addr = alloca i32*, align 4
|
%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
|
; ARM: add r0, r0, #124
|
||||||
; THUMB: adds r0, #124
|
; THUMB: adds r0, #124
|
||||||
%0 = load i32*, i32** %addr, align 4
|
%0 = load i32*, i32** %addr, align 4
|
||||||
@ -26,7 +26,7 @@ entry:
|
|||||||
; ARM: t2
|
; ARM: t2
|
||||||
; THUMB: t2
|
; THUMB: t2
|
||||||
%addr = alloca i32*, align 4
|
%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: movw [[R:r[0-9]+]], #1148
|
||||||
; ARM: add r0, r{{[0-9]+}}, [[R]]
|
; ARM: add r0, r{{[0-9]+}}, [[R]]
|
||||||
; THUMB: addw r0, r0, #1148
|
; THUMB: addw r0, r0, #1148
|
||||||
@ -39,7 +39,7 @@ entry:
|
|||||||
; ARM: t3
|
; ARM: t3
|
||||||
; THUMB: t3
|
; THUMB: t3
|
||||||
%addr = alloca i32*, align 4
|
%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
|
; ARM: add r0, r0, #140
|
||||||
; THUMB: adds r0, #140
|
; THUMB: adds r0, #140
|
||||||
%0 = load i32*, i32** %addr, align 4
|
%0 = load i32*, i32** %addr, align 4
|
||||||
@ -51,7 +51,7 @@ entry:
|
|||||||
; ARM: t4
|
; ARM: t4
|
||||||
; THUMB: t4
|
; THUMB: t4
|
||||||
%addr = alloca i32*, align 4
|
%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: movw r{{[0-9]}}, #1060
|
||||||
; ARM-NOT: add r{{[0-9]}}, r{{[0-9]}}, #4
|
; ARM-NOT: add r{{[0-9]}}, r{{[0-9]}}, #4
|
||||||
; ARM-NOT: add r{{[0-9]}}, r{{[0-9]}}, #132
|
; 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