[X86] Migrate tests to use opaque pointers (NFC)
Test updates were performed using: https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34 These are only the test updates where the test passed without further modification (which is almost all of them, as the backend is largely pointer-type agnostic).
This commit is contained in:
parent
aeccc16497
commit
2f448bf509
|
@ -1,22 +1,22 @@
|
|||
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
|
||||
|
||||
declare i8* @llvm.returnaddress(i32)
|
||||
declare ptr @llvm.returnaddress(i32)
|
||||
|
||||
declare i8* @llvm.frameaddress(i32)
|
||||
declare ptr @llvm.frameaddress(i32)
|
||||
|
||||
define i8* @test1() {
|
||||
define ptr @test1() {
|
||||
; CHECK-LABEL: test1:
|
||||
entry:
|
||||
%X = call i8* @llvm.returnaddress( i32 0 )
|
||||
ret i8* %X
|
||||
%X = call ptr @llvm.returnaddress( i32 0 )
|
||||
ret ptr %X
|
||||
; CHECK: movl {{.*}}(%esp), %eax
|
||||
}
|
||||
|
||||
define i8* @test2() {
|
||||
define ptr @test2() {
|
||||
; CHECK-LABEL: test2:
|
||||
entry:
|
||||
%X = call i8* @llvm.frameaddress( i32 0 )
|
||||
ret i8* %X
|
||||
%X = call ptr @llvm.frameaddress( i32 0 )
|
||||
ret ptr %X
|
||||
; CHECK: pushl %ebp
|
||||
; CHECK: popl %ebp
|
||||
}
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
|
||||
@GLOBAL = external dso_local global i32
|
||||
|
||||
define i32 @test(i32* %P1, i32* %P2, i32* %P3) nounwind {
|
||||
define i32 @test(ptr %P1, ptr %P2, ptr %P3) nounwind {
|
||||
; CHECK-LABEL: test:
|
||||
entry:
|
||||
%L = load i32, i32* @GLOBAL
|
||||
store i32 12, i32* %P2
|
||||
%Y = load i32, i32* %P3
|
||||
%L = load i32, ptr @GLOBAL
|
||||
store i32 12, ptr %P2
|
||||
%Y = load i32, ptr %P3
|
||||
%Z = sub i32 %Y, %L
|
||||
ret i32 %Z
|
||||
; CHECK-NOT: {{sub.*GLOBAL}}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
|
||||
|
||||
@A = external global i32 ; <i32*> [#uses=1]
|
||||
@Y = global i32* getelementptr (i32, i32* @A, i32 -1) ; <i32**> [#uses=0]
|
||||
@A = external global i32 ; <ptr> [#uses=1]
|
||||
@Y = global ptr getelementptr (i32, ptr @A, i32 -1) ; <ptr> [#uses=0]
|
||||
; CHECK-NOT: 18446744073709551612
|
||||
|
||||
|
|
|
@ -18,14 +18,14 @@ define i32 @test5(i32 %B, i8 %C) {
|
|||
; CHECK-NEXT: movl %eax, A
|
||||
; CHECK-NEXT: retl
|
||||
entry:
|
||||
%tmp.1 = load i32, i32* @A
|
||||
%tmp.1 = load i32, ptr @A
|
||||
%shift.upgrd.1 = zext i8 %C to i32
|
||||
%tmp.2 = shl i32 %tmp.1, %shift.upgrd.1
|
||||
%tmp.3 = sub i8 32, %C
|
||||
%shift.upgrd.2 = zext i8 %tmp.3 to i32
|
||||
%tmp.4 = lshr i32 %B, %shift.upgrd.2
|
||||
%tmp.5 = or i32 %tmp.4, %tmp.2
|
||||
store i32 %tmp.5, i32* @A
|
||||
store i32 %tmp.5, ptr @A
|
||||
ret i32 %tmp.5
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ target triple = "i686-apple-darwin8.6.1"
|
|||
%struct.GLTColor4 = type { float, float, float, float }
|
||||
%struct.GLTCoord3 = type { float, float, float }
|
||||
%struct.__GLIContextRec = type { { %struct.anon, { [24 x [16 x float]], [24 x [16 x float]] }, %struct.GLTColor4, { float, float, float, float, %struct.GLTCoord3, float } }, { float, float, float, float, float, float, float, float, [4 x i32], [4 x i32], [4 x i32] } }
|
||||
%struct.__GLvertex = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTCoord3, float, %struct.GLTColor4, float, float, float, i8, i8, i8, i8, [4 x float], [2 x i8*], i32, i32, [16 x %struct.GLTColor4] }
|
||||
%struct.__GLvertex = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTCoord3, float, %struct.GLTColor4, float, float, float, i8, i8, i8, i8, [4 x float], [2 x ptr], i32, i32, [16 x %struct.GLTColor4] }
|
||||
%struct.anon = type { float, float, float, float, float, float, float, float }
|
||||
|
||||
declare <4 x float> @llvm.x86.sse.cmp.ps(<4 x float>, <4 x float>, i8)
|
||||
|
@ -45,6 +45,6 @@ cond_false183: ; preds = %cond_false, %entry
|
|||
%tmp446 = zext i8 %tmp436 to i32 ; <i32> [#uses=1]
|
||||
%tmp447 = shl i32 %tmp446, 24 ; <i32> [#uses=1]
|
||||
%tmp449 = or i32 0, %tmp447 ; <i32> [#uses=1]
|
||||
store i32 %tmp449, i32* null
|
||||
store i32 %tmp449, ptr null
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-apple-darwin8 -relocation-model=static | FileCheck %s
|
||||
|
||||
@block = external global i8* ; <i8**> [#uses=1]
|
||||
@last = external global i32 ; <i32*> [#uses=3]
|
||||
@block = external global ptr ; <ptr> [#uses=1]
|
||||
@last = external global i32 ; <ptr> [#uses=3]
|
||||
|
||||
define i1 @loadAndRLEsource_no_exit_2E_1_label_2E_0(i32 %tmp.21.reload, i32 %tmp.8) {
|
||||
; CHECK-LABEL: loadAndRLEsource_no_exit_2E_1_label_2E_0:
|
||||
|
@ -37,14 +37,14 @@ label.0.no_exit.1_crit_edge.exitStub: ; preds = %label.0
|
|||
codeRepl5.exitStub: ; preds = %label.0
|
||||
ret i1 false
|
||||
label.0: ; preds = %newFuncRoot
|
||||
%tmp.35 = load i32, i32* @last ; <i32> [#uses=1]
|
||||
%tmp.35 = load i32, ptr @last ; <i32> [#uses=1]
|
||||
%inc.1 = add i32 %tmp.35, 1 ; <i32> [#uses=2]
|
||||
store i32 %inc.1, i32* @last
|
||||
%tmp.36 = load i8*, i8** @block ; <i8*> [#uses=1]
|
||||
%tmp.38 = getelementptr i8, i8* %tmp.36, i32 %inc.1 ; <i8*> [#uses=1]
|
||||
store i32 %inc.1, ptr @last
|
||||
%tmp.36 = load ptr, ptr @block ; <ptr> [#uses=1]
|
||||
%tmp.38 = getelementptr i8, ptr %tmp.36, i32 %inc.1 ; <ptr> [#uses=1]
|
||||
%tmp.40 = trunc i32 %tmp.21.reload to i8 ; <i8> [#uses=1]
|
||||
store i8 %tmp.40, i8* %tmp.38
|
||||
%tmp.910 = load i32, i32* @last ; <i32> [#uses=1]
|
||||
store i8 %tmp.40, ptr %tmp.38
|
||||
%tmp.910 = load i32, ptr @last ; <i32> [#uses=1]
|
||||
%tmp.1111 = icmp slt i32 %tmp.910, %tmp.8 ; <i1> [#uses=1]
|
||||
%tmp.1412 = icmp ne i32 %tmp.21.reload, 257 ; <i1> [#uses=1]
|
||||
%tmp.1613 = and i1 %tmp.1111, %tmp.1412 ; <i1> [#uses=1]
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
; END.
|
||||
|
||||
|
||||
define i32 @foo(<4 x float>* %a, <4 x float>* %b, <4 x float>* %c, <4 x float>* %d) {
|
||||
%tmp44 = load <4 x float>, <4 x float>* %a ; <<4 x float>> [#uses=9]
|
||||
%tmp46 = load <4 x float>, <4 x float>* %b ; <<4 x float>> [#uses=1]
|
||||
%tmp48 = load <4 x float>, <4 x float>* %c ; <<4 x float>> [#uses=1]
|
||||
%tmp50 = load <4 x float>, <4 x float>* %d ; <<4 x float>> [#uses=1]
|
||||
define i32 @foo(ptr %a, ptr %b, ptr %c, ptr %d) {
|
||||
%tmp44 = load <4 x float>, ptr %a ; <<4 x float>> [#uses=9]
|
||||
%tmp46 = load <4 x float>, ptr %b ; <<4 x float>> [#uses=1]
|
||||
%tmp48 = load <4 x float>, ptr %c ; <<4 x float>> [#uses=1]
|
||||
%tmp50 = load <4 x float>, ptr %d ; <<4 x float>> [#uses=1]
|
||||
%tmp51 = bitcast <4 x float> %tmp44 to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp = shufflevector <4 x i32> %tmp51, <4 x i32> undef, <4 x i32> < i32 3, i32 3, i32 3, i32 3 > ; <<4 x i32>> [#uses=2]
|
||||
%tmp52 = bitcast <4 x i32> %tmp to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
|
@ -23,7 +23,7 @@ define i32 @foo(<4 x float>* %a, <4 x float>* %b, <4 x float>* %c, <4 x float>*
|
|||
%tmp.upgrd.1 = shufflevector <8 x i16> %tmp102, <8 x i16> undef, <8 x i32> < i32 0, i32 1, i32 2, i32 3, i32 6, i32 5, i32 4, i32 7 > ; <<8 x i16>> [#uses=1]
|
||||
%tmp105 = shufflevector <8 x i16> %tmp.upgrd.1, <8 x i16> undef, <8 x i32> < i32 2, i32 1, i32 0, i32 3, i32 4, i32 5, i32 6, i32 7 > ; <<8 x i16>> [#uses=1]
|
||||
%tmp105.upgrd.2 = bitcast <8 x i16> %tmp105 to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
store <4 x float> %tmp105.upgrd.2, <4 x float>* %a
|
||||
store <4 x float> %tmp105.upgrd.2, ptr %a
|
||||
%tmp108 = bitcast <4 x float> %tmp46 to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp109 = shufflevector <4 x i32> %tmp108, <4 x i32> undef, <4 x i32> < i32 3, i32 3, i32 3, i32 3 > ; <<4 x i32>> [#uses=2]
|
||||
%tmp109.upgrd.3 = bitcast <4 x i32> %tmp109 to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
|
@ -38,7 +38,7 @@ define i32 @foo(<4 x float>* %a, <4 x float>* %b, <4 x float>* %c, <4 x float>*
|
|||
%tmp164 = shufflevector <8 x i16> %tmp163, <8 x i16> undef, <8 x i32> < i32 0, i32 1, i32 2, i32 3, i32 6, i32 5, i32 4, i32 7 > ; <<8 x i16>> [#uses=1]
|
||||
%tmp166 = shufflevector <8 x i16> %tmp164, <8 x i16> undef, <8 x i32> < i32 2, i32 1, i32 0, i32 3, i32 4, i32 5, i32 6, i32 7 > ; <<8 x i16>> [#uses=1]
|
||||
%tmp166.upgrd.4 = bitcast <8 x i16> %tmp166 to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
store <4 x float> %tmp166.upgrd.4, <4 x float>* %b
|
||||
store <4 x float> %tmp166.upgrd.4, ptr %b
|
||||
%tmp169 = bitcast <4 x float> %tmp48 to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp170 = shufflevector <4 x i32> %tmp169, <4 x i32> undef, <4 x i32> < i32 3, i32 3, i32 3, i32 3 > ; <<4 x i32>> [#uses=2]
|
||||
%tmp170.upgrd.5 = bitcast <4 x i32> %tmp170 to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
|
@ -53,7 +53,7 @@ define i32 @foo(<4 x float>* %a, <4 x float>* %b, <4 x float>* %c, <4 x float>*
|
|||
%tmp225 = shufflevector <8 x i16> %tmp224, <8 x i16> undef, <8 x i32> < i32 0, i32 1, i32 2, i32 3, i32 6, i32 5, i32 4, i32 7 > ; <<8 x i16>> [#uses=1]
|
||||
%tmp227 = shufflevector <8 x i16> %tmp225, <8 x i16> undef, <8 x i32> < i32 2, i32 1, i32 0, i32 3, i32 4, i32 5, i32 6, i32 7 > ; <<8 x i16>> [#uses=1]
|
||||
%tmp227.upgrd.6 = bitcast <8 x i16> %tmp227 to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
store <4 x float> %tmp227.upgrd.6, <4 x float>* %c
|
||||
store <4 x float> %tmp227.upgrd.6, ptr %c
|
||||
%tmp230 = bitcast <4 x float> %tmp50 to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp231 = shufflevector <4 x i32> %tmp230, <4 x i32> undef, <4 x i32> < i32 3, i32 3, i32 3, i32 3 > ; <<4 x i32>> [#uses=2]
|
||||
%tmp231.upgrd.7 = bitcast <4 x i32> %tmp231 to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
|
@ -68,7 +68,7 @@ define i32 @foo(<4 x float>* %a, <4 x float>* %b, <4 x float>* %c, <4 x float>*
|
|||
%tmp286 = shufflevector <8 x i16> %tmp285, <8 x i16> undef, <8 x i32> < i32 0, i32 1, i32 2, i32 3, i32 6, i32 5, i32 4, i32 7 > ; <<8 x i16>> [#uses=1]
|
||||
%tmp288 = shufflevector <8 x i16> %tmp286, <8 x i16> undef, <8 x i32> < i32 2, i32 1, i32 0, i32 3, i32 4, i32 5, i32 6, i32 7 > ; <<8 x i16>> [#uses=1]
|
||||
%tmp288.upgrd.8 = bitcast <8 x i16> %tmp288 to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
store <4 x float> %tmp288.upgrd.8, <4 x float>* %d
|
||||
store <4 x float> %tmp288.upgrd.8, ptr %d
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
|
|
|
@ -5,22 +5,20 @@
|
|||
; It's possible to schedule this in 14 instructions by avoiding
|
||||
; callee-save registers, but the scheduler isn't currently that
|
||||
; conervative with registers.
|
||||
@size20 = external dso_local global i32 ; <i32*> [#uses=1]
|
||||
@in5 = external dso_local global i8* ; <i8**> [#uses=1]
|
||||
@size20 = external dso_local global i32 ; <ptr> [#uses=1]
|
||||
@in5 = external dso_local global ptr ; <ptr> [#uses=1]
|
||||
|
||||
define i32 @compare(i8* %a, i8* %b) nounwind {
|
||||
%tmp = bitcast i8* %a to i32* ; <i32*> [#uses=1]
|
||||
%tmp1 = bitcast i8* %b to i32* ; <i32*> [#uses=1]
|
||||
%tmp.upgrd.1 = load i32, i32* @size20 ; <i32> [#uses=1]
|
||||
%tmp.upgrd.2 = load i8*, i8** @in5 ; <i8*> [#uses=2]
|
||||
%tmp3 = load i32, i32* %tmp1 ; <i32> [#uses=1]
|
||||
define i32 @compare(ptr %a, ptr %b) nounwind {
|
||||
%tmp.upgrd.1 = load i32, ptr @size20 ; <i32> [#uses=1]
|
||||
%tmp.upgrd.2 = load ptr, ptr @in5 ; <ptr> [#uses=2]
|
||||
%tmp3 = load i32, ptr %b ; <i32> [#uses=1]
|
||||
%gep.upgrd.3 = zext i32 %tmp3 to i64 ; <i64> [#uses=1]
|
||||
%tmp4 = getelementptr i8, i8* %tmp.upgrd.2, i64 %gep.upgrd.3 ; <i8*> [#uses=2]
|
||||
%tmp7 = load i32, i32* %tmp ; <i32> [#uses=1]
|
||||
%tmp4 = getelementptr i8, ptr %tmp.upgrd.2, i64 %gep.upgrd.3 ; <ptr> [#uses=2]
|
||||
%tmp7 = load i32, ptr %a ; <i32> [#uses=1]
|
||||
%gep.upgrd.4 = zext i32 %tmp7 to i64 ; <i64> [#uses=1]
|
||||
%tmp8 = getelementptr i8, i8* %tmp.upgrd.2, i64 %gep.upgrd.4 ; <i8*> [#uses=2]
|
||||
%tmp.upgrd.5 = tail call i32 @memcmp( i8* %tmp8, i8* %tmp4, i32 %tmp.upgrd.1 ) ; <i32> [#uses=1]
|
||||
%tmp8 = getelementptr i8, ptr %tmp.upgrd.2, i64 %gep.upgrd.4 ; <ptr> [#uses=2]
|
||||
%tmp.upgrd.5 = tail call i32 @memcmp( ptr %tmp8, ptr %tmp4, i32 %tmp.upgrd.1 ) ; <i32> [#uses=1]
|
||||
ret i32 %tmp.upgrd.5
|
||||
}
|
||||
|
||||
declare i32 @memcmp(i8*, i8*, i32)
|
||||
declare i32 @memcmp(ptr, ptr, i32)
|
||||
|
|
|
@ -2,23 +2,23 @@
|
|||
; RUN: llc < %s -mtriple=i686-- -stats 2>&1 | \
|
||||
; RUN: grep asm-printer | grep 13
|
||||
|
||||
define void @_ZN9__gnu_cxx9hashtableISt4pairIKPKciES3_NS_4hashIS3_EESt10_Select1stIS5_E5eqstrSaIiEE14find_or_insertERKS5__cond_true456.i(i8* %tmp435.i, i32* %tmp449.i.out) nounwind {
|
||||
define void @_ZN9__gnu_cxx9hashtableISt4pairIKPKciES3_NS_4hashIS3_EESt10_Select1stIS5_E5eqstrSaIiEE14find_or_insertERKS5__cond_true456.i(ptr %tmp435.i, ptr %tmp449.i.out) nounwind {
|
||||
newFuncRoot:
|
||||
br label %cond_true456.i
|
||||
bb459.i.exitStub: ; preds = %cond_true456.i
|
||||
store i32 %tmp449.i, i32* %tmp449.i.out
|
||||
store i32 %tmp449.i, ptr %tmp449.i.out
|
||||
ret void
|
||||
cond_true456.i: ; preds = %cond_true456.i, %newFuncRoot
|
||||
%__s441.2.4.i = phi i8* [ %tmp451.i.upgrd.1, %cond_true456.i ], [ %tmp435.i, %newFuncRoot ] ; <i8*> [#uses=2]
|
||||
%__s441.2.4.i = phi ptr [ %tmp451.i.upgrd.1, %cond_true456.i ], [ %tmp435.i, %newFuncRoot ] ; <ptr> [#uses=2]
|
||||
%__h.2.4.i = phi i32 [ %tmp449.i, %cond_true456.i ], [ 0, %newFuncRoot ] ; <i32> [#uses=1]
|
||||
%tmp446.i = mul i32 %__h.2.4.i, 5 ; <i32> [#uses=1]
|
||||
%tmp.i = load i8, i8* %__s441.2.4.i ; <i8> [#uses=1]
|
||||
%tmp.i = load i8, ptr %__s441.2.4.i ; <i8> [#uses=1]
|
||||
%tmp448.i = sext i8 %tmp.i to i32 ; <i32> [#uses=1]
|
||||
%tmp449.i = add i32 %tmp448.i, %tmp446.i ; <i32> [#uses=2]
|
||||
%tmp450.i = ptrtoint i8* %__s441.2.4.i to i32 ; <i32> [#uses=1]
|
||||
%tmp450.i = ptrtoint ptr %__s441.2.4.i to i32 ; <i32> [#uses=1]
|
||||
%tmp451.i = add i32 %tmp450.i, 1 ; <i32> [#uses=1]
|
||||
%tmp451.i.upgrd.1 = inttoptr i32 %tmp451.i to i8* ; <i8*> [#uses=2]
|
||||
%tmp45435.i = load i8, i8* %tmp451.i.upgrd.1 ; <i8> [#uses=1]
|
||||
%tmp451.i.upgrd.1 = inttoptr i32 %tmp451.i to ptr ; <ptr> [#uses=2]
|
||||
%tmp45435.i = load i8, ptr %tmp451.i.upgrd.1 ; <i8> [#uses=1]
|
||||
%tmp45536.i = icmp eq i8 %tmp45435.i, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp45536.i, label %bb459.i.exitStub, label %cond_true456.i
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
; RUN: llc < %s -mtriple=i686-- -relocation-model=static | FileCheck %s
|
||||
|
||||
@B = external dso_local global i32 ; <i32*> [#uses=2]
|
||||
@C = external dso_local global i16* ; <i16**> [#uses=2]
|
||||
@B = external dso_local global i32 ; <ptr> [#uses=2]
|
||||
@C = external dso_local global ptr ; <ptr> [#uses=2]
|
||||
|
||||
define void @test(i32 %A) {
|
||||
; CHECK-LABEL: test:
|
||||
|
@ -18,17 +18,17 @@ define void @test(i32 %A) {
|
|||
; CHECK-NEXT: addl %eax, C
|
||||
; CHECK-NEXT: retl
|
||||
%A.upgrd.1 = trunc i32 %A to i8 ; <i8> [#uses=1]
|
||||
%tmp2 = load i32, i32* @B ; <i32> [#uses=1]
|
||||
%tmp2 = load i32, ptr @B ; <i32> [#uses=1]
|
||||
%tmp3 = and i8 %A.upgrd.1, 16 ; <i8> [#uses=1]
|
||||
%shift.upgrd.2 = zext i8 %tmp3 to i32 ; <i32> [#uses=1]
|
||||
%tmp4 = shl i32 %tmp2, %shift.upgrd.2 ; <i32> [#uses=1]
|
||||
store i32 %tmp4, i32* @B
|
||||
store i32 %tmp4, ptr @B
|
||||
%tmp6 = lshr i32 %A, 3 ; <i32> [#uses=1]
|
||||
%tmp = load i16*, i16** @C ; <i16*> [#uses=1]
|
||||
%tmp8 = ptrtoint i16* %tmp to i32 ; <i32> [#uses=1]
|
||||
%tmp = load ptr, ptr @C ; <ptr> [#uses=1]
|
||||
%tmp8 = ptrtoint ptr %tmp to i32 ; <i32> [#uses=1]
|
||||
%tmp9 = add i32 %tmp8, %tmp6 ; <i32> [#uses=1]
|
||||
%tmp9.upgrd.3 = inttoptr i32 %tmp9 to i16* ; <i16*> [#uses=1]
|
||||
store i16* %tmp9.upgrd.3, i16** @C
|
||||
%tmp9.upgrd.3 = inttoptr i32 %tmp9 to ptr ; <ptr> [#uses=1]
|
||||
store ptr %tmp9.upgrd.3, ptr @C
|
||||
ret void
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-- -relocation-model=static | FileCheck %s
|
||||
|
||||
@A = external dso_local global i16* ; <i16**> [#uses=1]
|
||||
@B = external dso_local global i32 ; <i32*> [#uses=1]
|
||||
@C = external dso_local global i32 ; <i32*> [#uses=2]
|
||||
@A = external dso_local global ptr ; <ptr> [#uses=1]
|
||||
@B = external dso_local global i32 ; <ptr> [#uses=1]
|
||||
@C = external dso_local global i32 ; <ptr> [#uses=2]
|
||||
|
||||
define void @test() {
|
||||
; CHECK-LABEL: test:
|
||||
|
@ -19,13 +19,13 @@ define void @test() {
|
|||
; CHECK-NEXT: orl %edx, %eax
|
||||
; CHECK-NEXT: movl %eax, C
|
||||
; CHECK-NEXT: retl
|
||||
%tmp = load i16*, i16** @A ; <i16*> [#uses=1]
|
||||
%tmp1 = getelementptr i16, i16* %tmp, i32 1 ; <i16*> [#uses=1]
|
||||
%tmp.upgrd.1 = load i16, i16* %tmp1 ; <i16> [#uses=1]
|
||||
%tmp = load ptr, ptr @A ; <ptr> [#uses=1]
|
||||
%tmp1 = getelementptr i16, ptr %tmp, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp.upgrd.1 = load i16, ptr %tmp1 ; <i16> [#uses=1]
|
||||
%tmp3 = zext i16 %tmp.upgrd.1 to i32 ; <i32> [#uses=1]
|
||||
%tmp.upgrd.2 = load i32, i32* @B ; <i32> [#uses=1]
|
||||
%tmp.upgrd.2 = load i32, ptr @B ; <i32> [#uses=1]
|
||||
%tmp4 = and i32 %tmp.upgrd.2, 16 ; <i32> [#uses=1]
|
||||
%tmp5 = load i32, i32* @C ; <i32> [#uses=1]
|
||||
%tmp5 = load i32, ptr @C ; <i32> [#uses=1]
|
||||
%tmp6 = trunc i32 %tmp4 to i8 ; <i8> [#uses=2]
|
||||
%shift.upgrd.3 = zext i8 %tmp6 to i32 ; <i32> [#uses=1]
|
||||
%tmp7 = shl i32 %tmp5, %shift.upgrd.3 ; <i32> [#uses=1]
|
||||
|
@ -33,7 +33,7 @@ define void @test() {
|
|||
%shift.upgrd.4 = zext i8 %tmp9 to i32 ; <i32> [#uses=1]
|
||||
%tmp11 = lshr i32 %tmp3, %shift.upgrd.4 ; <i32> [#uses=1]
|
||||
%tmp12 = or i32 %tmp11, %tmp7 ; <i32> [#uses=1]
|
||||
store i32 %tmp12, i32* @C
|
||||
store i32 %tmp12, ptr @C
|
||||
ret void
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
; RUN: grep "asm-printer" | grep 33
|
||||
|
||||
target datalayout = "e-p:32:32"
|
||||
define void @foo(i32* %mc, i32* %bp, i32* %ms, i32* %xmb, i32* %mpp, i32* %tpmm, i32* %ip, i32* %tpim, i32* %dpp, i32* %tpdm, i32* %bpi, i32 %M) nounwind {
|
||||
define void @foo(ptr %mc, ptr %bp, ptr %ms, ptr %xmb, ptr %mpp, ptr %tpmm, ptr %ip, ptr %tpim, ptr %dpp, ptr %tpdm, ptr %bpi, i32 %M) nounwind {
|
||||
entry:
|
||||
%tmp9 = icmp slt i32 %M, 5 ; <i1> [#uses=1]
|
||||
br i1 %tmp9, label %return, label %cond_true
|
||||
|
@ -13,21 +13,17 @@ cond_true: ; preds = %cond_true, %entry
|
|||
%tmp. = shl i32 %indvar, 2 ; <i32> [#uses=1]
|
||||
%tmp.10 = add nsw i32 %tmp., 1 ; <i32> [#uses=2]
|
||||
%tmp31 = add nsw i32 %tmp.10, -1 ; <i32> [#uses=4]
|
||||
%tmp32 = getelementptr i32, i32* %mpp, i32 %tmp31 ; <i32*> [#uses=1]
|
||||
%tmp34 = bitcast i32* %tmp32 to <16 x i8>* ; <i8*> [#uses=1]
|
||||
%tmp = load <16 x i8>, <16 x i8>* %tmp34, align 1
|
||||
%tmp42 = getelementptr i32, i32* %tpmm, i32 %tmp31 ; <i32*> [#uses=1]
|
||||
%tmp42.upgrd.1 = bitcast i32* %tmp42 to <4 x i32>* ; <<4 x i32>*> [#uses=1]
|
||||
%tmp46 = load <4 x i32>, <4 x i32>* %tmp42.upgrd.1 ; <<4 x i32>> [#uses=1]
|
||||
%tmp32 = getelementptr i32, ptr %mpp, i32 %tmp31 ; <ptr> [#uses=1]
|
||||
%tmp = load <16 x i8>, ptr %tmp32, align 1
|
||||
%tmp42 = getelementptr i32, ptr %tpmm, i32 %tmp31 ; <ptr> [#uses=1]
|
||||
%tmp46 = load <4 x i32>, ptr %tmp42 ; <<4 x i32>> [#uses=1]
|
||||
%tmp54 = bitcast <16 x i8> %tmp to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp55 = add <4 x i32> %tmp54, %tmp46 ; <<4 x i32>> [#uses=2]
|
||||
%tmp55.upgrd.2 = bitcast <4 x i32> %tmp55 to <2 x i64> ; <<2 x i64>> [#uses=1]
|
||||
%tmp62 = getelementptr i32, i32* %ip, i32 %tmp31 ; <i32*> [#uses=1]
|
||||
%tmp65 = bitcast i32* %tmp62 to <16 x i8>* ; <i8*> [#uses=1]
|
||||
%tmp66 = load <16 x i8>, <16 x i8>* %tmp65, align 1
|
||||
%tmp73 = getelementptr i32, i32* %tpim, i32 %tmp31 ; <i32*> [#uses=1]
|
||||
%tmp73.upgrd.3 = bitcast i32* %tmp73 to <4 x i32>* ; <<4 x i32>*> [#uses=1]
|
||||
%tmp77 = load <4 x i32>, <4 x i32>* %tmp73.upgrd.3 ; <<4 x i32>> [#uses=1]
|
||||
%tmp62 = getelementptr i32, ptr %ip, i32 %tmp31 ; <ptr> [#uses=1]
|
||||
%tmp66 = load <16 x i8>, ptr %tmp62, align 1
|
||||
%tmp73 = getelementptr i32, ptr %tpim, i32 %tmp31 ; <ptr> [#uses=1]
|
||||
%tmp77 = load <4 x i32>, ptr %tmp73 ; <<4 x i32>> [#uses=1]
|
||||
%tmp87 = bitcast <16 x i8> %tmp66 to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp88 = add <4 x i32> %tmp87, %tmp77 ; <<4 x i32>> [#uses=2]
|
||||
%tmp88.upgrd.4 = bitcast <4 x i32> %tmp88 to <2 x i64> ; <<2 x i64>> [#uses=1]
|
||||
|
@ -37,9 +33,8 @@ cond_true: ; preds = %cond_true, %entry
|
|||
%tmp111 = and <2 x i64> %tmp110, %tmp55.upgrd.2 ; <<2 x i64>> [#uses=1]
|
||||
%tmp121 = and <2 x i64> %tmp99.upgrd.5, %tmp88.upgrd.4 ; <<2 x i64>> [#uses=1]
|
||||
%tmp131 = or <2 x i64> %tmp121, %tmp111 ; <<2 x i64>> [#uses=1]
|
||||
%tmp137 = getelementptr i32, i32* %mc, i32 %tmp.10 ; <i32*> [#uses=1]
|
||||
%tmp137.upgrd.7 = bitcast i32* %tmp137 to <2 x i64>* ; <<2 x i64>*> [#uses=1]
|
||||
store <2 x i64> %tmp131, <2 x i64>* %tmp137.upgrd.7
|
||||
%tmp137 = getelementptr i32, ptr %mc, i32 %tmp.10 ; <ptr> [#uses=1]
|
||||
store <2 x i64> %tmp131, ptr %tmp137
|
||||
%tmp147 = add nsw i32 %tmp.10, 8 ; <i32> [#uses=1]
|
||||
%tmp.upgrd.8 = icmp ne i32 %tmp147, %M ; <i1> [#uses=1]
|
||||
%indvar.next = add i32 %indvar, 1 ; <i32> [#uses=1]
|
||||
|
|
|
@ -6,7 +6,7 @@ cond_true12: ; preds = %0
|
|||
ret i32 0
|
||||
cond_next33: ; preds = %0
|
||||
%tmp44.i = call double @foo( double 0.000000e+00, i32 32 ) ; <double> [#uses=1]
|
||||
%tmp61.i = load i8, i8* null ; <i8> [#uses=1]
|
||||
%tmp61.i = load i8, ptr null ; <i8> [#uses=1]
|
||||
%tmp61.i.upgrd.1 = zext i8 %tmp61.i to i32 ; <i32> [#uses=1]
|
||||
%tmp58.i = or i32 0, %tmp61.i.upgrd.1 ; <i32> [#uses=1]
|
||||
%tmp62.i = or i32 %tmp58.i, 0 ; <i32> [#uses=1]
|
||||
|
|
|
@ -6,7 +6,7 @@ target triple = "i686-pc-linux-gnu"
|
|||
|
||||
define void @_ZN5() {
|
||||
cond_true9:
|
||||
%tmp3.i.i = call i32 asm sideeffect "lock; cmpxchg $1,$2", "={ax},q,m,0,~{dirflag},~{fpsr},~{flags},~{memory}"( i32 0, i32* null, i32 0 ) ; <i32> [#uses=0]
|
||||
%tmp3.i.i = call i32 asm sideeffect "lock; cmpxchg $1,$2", "={ax},q,m,0,~{dirflag},~{fpsr},~{flags},~{memory}"( i32 0, ptr null, i32 0 ) ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
; RUN: llc < %s -mtriple=i686-- -no-integrated-as
|
||||
; PR833
|
||||
|
||||
@G = weak global i32 0 ; <i32*> [#uses=3]
|
||||
@G = weak global i32 0 ; <ptr> [#uses=3]
|
||||
|
||||
define i32 @foo(i32 %X) {
|
||||
entry:
|
||||
%X_addr = alloca i32 ; <i32*> [#uses=3]
|
||||
store i32 %X, i32* %X_addr
|
||||
call void asm sideeffect "xchg{l} {$0,$1|$1,$0}", "=*m,=*r,m,1,~{dirflag},~{fpsr},~{flags}"(i32* elementtype(i32) @G, i32* elementtype(i32) %X_addr, i32* @G, i32 %X )
|
||||
%tmp1 = load i32, i32* %X_addr ; <i32> [#uses=1]
|
||||
%X_addr = alloca i32 ; <ptr> [#uses=3]
|
||||
store i32 %X, ptr %X_addr
|
||||
call void asm sideeffect "xchg{l} {$0,$1|$1,$0}", "=*m,=*r,m,1,~{dirflag},~{fpsr},~{flags}"(ptr elementtype(i32) @G, ptr elementtype(i32) %X_addr, ptr @G, i32 %X )
|
||||
%tmp1 = load i32, ptr %X_addr ; <i32> [#uses=1]
|
||||
ret i32 %tmp1
|
||||
}
|
||||
|
||||
define i32 @foo2(i32 %X) {
|
||||
entry:
|
||||
%X_addr = alloca i32 ; <i32*> [#uses=3]
|
||||
store i32 %X, i32* %X_addr
|
||||
call void asm sideeffect "xchg{l} {$0,$1|$1,$0}", "=*m,=*r,1,~{dirflag},~{fpsr},~{flags}"(i32* elementtype(i32) @G, i32* elementtype(i32) %X_addr, i32 %X )
|
||||
%tmp1 = load i32, i32* %X_addr ; <i32> [#uses=1]
|
||||
%X_addr = alloca i32 ; <ptr> [#uses=3]
|
||||
store i32 %X, ptr %X_addr
|
||||
call void asm sideeffect "xchg{l} {$0,$1|$1,$0}", "=*m,=*r,1,~{dirflag},~{fpsr},~{flags}"(ptr elementtype(i32) @G, ptr elementtype(i32) %X_addr, i32 %X )
|
||||
%tmp1 = load i32, ptr %X_addr ; <i32> [#uses=1]
|
||||
ret i32 %tmp1
|
||||
}
|
||||
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
; PR853
|
||||
|
||||
; CHECK: 4294967240
|
||||
@X = global i32* inttoptr (i64 -56 to i32*) ; <i32**> [#uses=0]
|
||||
@X = global ptr inttoptr (i64 -56 to ptr) ; <ptr> [#uses=0]
|
||||
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
; RUN: llc < %s -mtriple=i686-- -mattr=+sse2
|
||||
%struct.foo = type opaque
|
||||
|
||||
define fastcc i32 @test(%struct.foo* %v, %struct.foo* %vi) {
|
||||
define fastcc i32 @test(ptr %v, ptr %vi) {
|
||||
br i1 false, label %ilog2.exit, label %cond_true.i
|
||||
|
||||
cond_true.i: ; preds = %0
|
||||
ret i32 0
|
||||
|
||||
ilog2.exit: ; preds = %0
|
||||
%tmp24.i = load i32, i32* null ; <i32> [#uses=1]
|
||||
%tmp24.i = load i32, ptr null ; <i32> [#uses=1]
|
||||
%tmp13.i12.i = tail call double @ldexp( double 0.000000e+00, i32 0 ) ; <double> [#uses=1]
|
||||
%tmp13.i13.i = fptrunc double %tmp13.i12.i to float ; <float> [#uses=1]
|
||||
%tmp11.s = load i32, i32* null ; <i32> [#uses=1]
|
||||
%tmp11.s = load i32, ptr null ; <i32> [#uses=1]
|
||||
%tmp11.i = bitcast i32 %tmp11.s to i32 ; <i32> [#uses=1]
|
||||
%n.i = bitcast i32 %tmp24.i to i32 ; <i32> [#uses=1]
|
||||
%tmp13.i7 = mul i32 %tmp11.i, %n.i ; <i32> [#uses=1]
|
||||
%tmp.i8 = tail call i8* @calloc( i32 %tmp13.i7, i32 4 ) ; <i8*> [#uses=0]
|
||||
%tmp.i8 = tail call ptr @calloc( i32 %tmp13.i7, i32 4 ) ; <ptr> [#uses=0]
|
||||
br i1 false, label %bb224.preheader.i, label %bb.i
|
||||
|
||||
bb.i: ; preds = %ilog2.exit
|
||||
|
@ -26,6 +26,6 @@ bb224.preheader.i: ; preds = %ilog2.exit
|
|||
ret i32 0
|
||||
}
|
||||
|
||||
declare i8* @calloc(i32, i32)
|
||||
declare ptr @calloc(i32, i32)
|
||||
|
||||
declare double @ldexp(double, i32)
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
; RUN: llc < %s -mtriple=i686--
|
||||
%struct.expr = type { %struct.rtx_def*, i32, %struct.expr*, %struct.occr*, %struct.occr*, %struct.rtx_def* }
|
||||
%struct.hash_table = type { %struct.expr**, i32, i32, i32 }
|
||||
%struct.occr = type { %struct.occr*, %struct.rtx_def*, i8, i8 }
|
||||
%struct.expr = type { ptr, i32, ptr, ptr, ptr, ptr }
|
||||
%struct.hash_table = type { ptr, i32, i32, i32 }
|
||||
%struct.occr = type { ptr, ptr, i8, i8 }
|
||||
%struct.rtx_def = type { i16, i8, i8, %struct.u }
|
||||
%struct.u = type { [1 x i64] }
|
||||
|
||||
define void @test() {
|
||||
%tmp = load i32, i32* null ; <i32> [#uses=1]
|
||||
%tmp = load i32, ptr null ; <i32> [#uses=1]
|
||||
%tmp8 = call i32 @hash_rtx( ) ; <i32> [#uses=1]
|
||||
%tmp11 = urem i32 %tmp8, %tmp ; <i32> [#uses=1]
|
||||
br i1 false, label %cond_next, label %return
|
||||
|
||||
cond_next: ; preds = %0
|
||||
%gep.upgrd.1 = zext i32 %tmp11 to i64 ; <i64> [#uses=1]
|
||||
%tmp17 = getelementptr %struct.expr*, %struct.expr** null, i64 %gep.upgrd.1 ; <%struct.expr**> [#uses=0]
|
||||
%tmp17 = getelementptr ptr, ptr null, i64 %gep.upgrd.1 ; <ptr> [#uses=0]
|
||||
ret void
|
||||
|
||||
return: ; preds = %0
|
||||
|
|
|
@ -2,130 +2,128 @@
|
|||
target datalayout = "e-p:32:32"
|
||||
target triple = "i686-apple-darwin8"
|
||||
%struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
|
||||
%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
|
||||
%struct.VEC_edge = type { i32, i32, [1 x %struct.edge_def*] }
|
||||
%struct.VEC_tree = type { i32, i32, [1 x %struct.tree_node*] }
|
||||
%struct.FILE = type { ptr, i32, i32, i16, i16, %struct.__sbuf, i32, ptr, ptr, ptr, ptr, ptr, %struct.__sbuf, ptr, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
|
||||
%struct.VEC_edge = type { i32, i32, [1 x ptr] }
|
||||
%struct.VEC_tree = type { i32, i32, [1 x ptr] }
|
||||
%struct.__sFILEX = type opaque
|
||||
%struct.__sbuf = type { i8*, i32 }
|
||||
%struct._obstack_chunk = type { i8*, %struct._obstack_chunk*, [4 x i8] }
|
||||
%struct._var_map = type { %struct.partition_def*, i32*, i32*, %struct.tree_node**, i32, i32, i32* }
|
||||
%struct.basic_block_def = type { %struct.rtx_def*, %struct.rtx_def*, %struct.tree_node*, %struct.VEC_edge*, %struct.VEC_edge*, %struct.bitmap_head_def*, %struct.bitmap_head_def*, i8*, %struct.loop*, [2 x %struct.et_node*], %struct.basic_block_def*, %struct.basic_block_def*, %struct.reorder_block_def*, %struct.bb_ann_d*, i64, i32, i32, i32, i32 }
|
||||
%struct.bb_ann_d = type { %struct.tree_node*, i8, %struct.edge_prediction* }
|
||||
%struct.bitmap_element_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, [4 x i32] }
|
||||
%struct.bitmap_head_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, %struct.bitmap_obstack* }
|
||||
%struct.bitmap_iterator = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, i32 }
|
||||
%struct.bitmap_obstack = type { %struct.bitmap_element_def*, %struct.bitmap_head_def*, %struct.obstack }
|
||||
%struct.block_stmt_iterator = type { %struct.tree_stmt_iterator, %struct.basic_block_def* }
|
||||
%struct.coalesce_list_d = type { %struct._var_map*, %struct.partition_pair_d**, i1 }
|
||||
%struct.__sbuf = type { ptr, i32 }
|
||||
%struct._obstack_chunk = type { ptr, ptr, [4 x i8] }
|
||||
%struct._var_map = type { ptr, ptr, ptr, ptr, i32, i32, ptr }
|
||||
%struct.basic_block_def = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x ptr], ptr, ptr, ptr, ptr, i64, i32, i32, i32, i32 }
|
||||
%struct.bb_ann_d = type { ptr, i8, ptr }
|
||||
%struct.bitmap_element_def = type { ptr, ptr, i32, [4 x i32] }
|
||||
%struct.bitmap_head_def = type { ptr, ptr, i32, ptr }
|
||||
%struct.bitmap_iterator = type { ptr, ptr, i32, i32 }
|
||||
%struct.bitmap_obstack = type { ptr, ptr, %struct.obstack }
|
||||
%struct.block_stmt_iterator = type { %struct.tree_stmt_iterator, ptr }
|
||||
%struct.coalesce_list_d = type { ptr, ptr, i1 }
|
||||
%struct.conflict_graph_def = type opaque
|
||||
%struct.dataflow_d = type { %struct.varray_head_tag*, [2 x %struct.tree_node*] }
|
||||
%struct.def_operand_ptr = type { %struct.tree_node** }
|
||||
%struct.dataflow_d = type { ptr, [2 x ptr] }
|
||||
%struct.def_operand_ptr = type { ptr }
|
||||
%struct.def_optype_d = type { i32, [1 x %struct.def_operand_ptr] }
|
||||
%struct.die_struct = type opaque
|
||||
%struct.edge_def = type { %struct.basic_block_def*, %struct.basic_block_def*, %struct.edge_def_insns, i8*, %struct.__sbuf*, i32, i32, i64, i32 }
|
||||
%struct.edge_def_insns = type { %struct.rtx_def* }
|
||||
%struct.edge_iterator = type { i32, %struct.VEC_edge** }
|
||||
%struct.edge_prediction = type { %struct.edge_prediction*, %struct.edge_def*, i32, i32 }
|
||||
%struct.edge_def = type { ptr, ptr, %struct.edge_def_insns, ptr, ptr, i32, i32, i64, i32 }
|
||||
%struct.edge_def_insns = type { ptr }
|
||||
%struct.edge_iterator = type { i32, ptr }
|
||||
%struct.edge_prediction = type { ptr, ptr, i32, i32 }
|
||||
%struct.eh_status = type opaque
|
||||
%struct.elt_list = type opaque
|
||||
%struct.emit_status = type { i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack*, i32, %struct.__sbuf, i32, i8*, %struct.rtx_def** }
|
||||
%struct.emit_status = type { i32, i32, ptr, ptr, ptr, i32, %struct.__sbuf, i32, ptr, ptr }
|
||||
%struct.et_node = type opaque
|
||||
%struct.expr_status = type { i32, i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def* }
|
||||
%struct.function = type { %struct.eh_status*, %struct.expr_status*, %struct.emit_status*, %struct.varasm_status*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.function*, i32, i32, i32, i32, %struct.rtx_def*, %struct.CUMULATIVE_ARGS, %struct.rtx_def*, %struct.rtx_def*, %struct.initial_value_struct*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, i8, i32, i64, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.varray_head_tag*, %struct.temp_slot*, i32, %struct.var_refs_queue*, i32, i32, %struct.rtvec_def*, %struct.tree_node*, i32, i32, i32, %struct.machine_function*, i32, i32, i1, i1, %struct.language_function*, %struct.rtx_def*, i32, i32, i32, i32, %struct.__sbuf, %struct.varray_head_tag*, %struct.tree_node*, i8, i8, i8 }
|
||||
%struct.ht_identifier = type { i8*, i32, i32 }
|
||||
%struct.expr_status = type { i32, i32, i32, ptr, ptr, ptr }
|
||||
%struct.function = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, ptr, %struct.CUMULATIVE_ARGS, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i32, i64, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, i32, ptr, ptr, i32, i32, i32, ptr, i32, i32, i1, i1, ptr, ptr, i32, i32, i32, i32, %struct.__sbuf, ptr, ptr, i8, i8, i8 }
|
||||
%struct.ht_identifier = type { ptr, i32, i32 }
|
||||
%struct.initial_value_struct = type opaque
|
||||
%struct.lang_decl = type opaque
|
||||
%struct.lang_type = type opaque
|
||||
%struct.language_function = type opaque
|
||||
%struct.location_t = type { i8*, i32 }
|
||||
%struct.location_t = type { ptr, i32 }
|
||||
%struct.loop = type opaque
|
||||
%struct.machine_function = type { i32, i32, i8*, i32, i32 }
|
||||
%struct.obstack = type { i32, %struct._obstack_chunk*, i8*, i8*, i8*, i32, i32, %struct._obstack_chunk* (i8*, i32)*, void (i8*, %struct._obstack_chunk*)*, i8*, i8 }
|
||||
%struct.machine_function = type { i32, i32, ptr, i32, i32 }
|
||||
%struct.obstack = type { i32, ptr, ptr, ptr, ptr, i32, i32, ptr, ptr, ptr, i8 }
|
||||
%struct.partition_def = type { i32, [1 x %struct.partition_elem] }
|
||||
%struct.partition_elem = type { i32, %struct.partition_elem*, i32 }
|
||||
%struct.partition_pair_d = type { i32, i32, i32, %struct.partition_pair_d* }
|
||||
%struct.phi_arg_d = type { %struct.tree_node*, i1 }
|
||||
%struct.partition_elem = type { i32, ptr, i32 }
|
||||
%struct.partition_pair_d = type { i32, i32, i32, ptr }
|
||||
%struct.phi_arg_d = type { ptr, i1 }
|
||||
%struct.pointer_set_t = type opaque
|
||||
%struct.ptr_info_def = type { i8, %struct.bitmap_head_def*, %struct.tree_node* }
|
||||
%struct.ptr_info_def = type { i8, ptr, ptr }
|
||||
%struct.real_value = type opaque
|
||||
%struct.reg_info_def = type opaque
|
||||
%struct.reorder_block_def = type { %struct.rtx_def*, %struct.rtx_def*, %struct.basic_block_def*, %struct.basic_block_def*, %struct.basic_block_def*, i32, i32, i32 }
|
||||
%struct.reorder_block_def = type { ptr, ptr, ptr, ptr, ptr, i32, i32, i32 }
|
||||
%struct.rtvec_def = type opaque
|
||||
%struct.rtx_def = type opaque
|
||||
%struct.sequence_stack = type { %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack* }
|
||||
%struct.sequence_stack = type { ptr, ptr, ptr }
|
||||
%struct.simple_bitmap_def = type { i32, i32, i32, [1 x i64] }
|
||||
%struct.ssa_op_iter = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.stmt_operands_d*, i1 }
|
||||
%struct.stmt_ann_d = type { %struct.tree_ann_common_d, i8, %struct.basic_block_def*, %struct.stmt_operands_d, %struct.dataflow_d*, %struct.bitmap_head_def*, i32 }
|
||||
%struct.stmt_operands_d = type { %struct.def_optype_d*, %struct.def_optype_d*, %struct.v_may_def_optype_d*, %struct.vuse_optype_d*, %struct.v_may_def_optype_d* }
|
||||
%struct.ssa_op_iter = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, i1 }
|
||||
%struct.stmt_ann_d = type { %struct.tree_ann_common_d, i8, ptr, %struct.stmt_operands_d, ptr, ptr, i32 }
|
||||
%struct.stmt_operands_d = type { ptr, ptr, ptr, ptr, ptr }
|
||||
%struct.temp_slot = type opaque
|
||||
%struct.tree_ann_common_d = type { i32, i8*, %struct.tree_node* }
|
||||
%struct.tree_ann_common_d = type { i32, ptr, ptr }
|
||||
%struct.tree_ann_d = type { %struct.stmt_ann_d }
|
||||
%struct.tree_binfo = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.VEC_tree*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.VEC_tree }
|
||||
%struct.tree_block = type { %struct.tree_common, i8, [3 x i8], %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node* }
|
||||
%struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_ann_d*, i8, i8, i8, i8, i8 }
|
||||
%struct.tree_complex = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node* }
|
||||
%struct.tree_decl = type { %struct.tree_common, %struct.__sbuf, i32, %struct.tree_node*, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, i32, %struct.tree_decl_u2, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_decl* }
|
||||
%struct.tree_binfo = type { %struct.tree_common, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.VEC_tree }
|
||||
%struct.tree_block = type { %struct.tree_common, i8, [3 x i8], ptr, ptr, ptr, ptr, ptr, ptr }
|
||||
%struct.tree_common = type { ptr, ptr, ptr, i8, i8, i8, i8, i8 }
|
||||
%struct.tree_complex = type { %struct.tree_common, ptr, ptr }
|
||||
%struct.tree_decl = type { %struct.tree_common, %struct.__sbuf, i32, ptr, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, %struct.tree_decl_u2, ptr, ptr, i64, ptr }
|
||||
%struct.tree_decl_u1 = type { i64 }
|
||||
%struct.tree_decl_u1_a = type { i32 }
|
||||
%struct.tree_decl_u2 = type { %struct.function* }
|
||||
%struct.tree_exp = type { %struct.tree_common, %struct.__sbuf*, i32, %struct.tree_node*, [1 x %struct.tree_node*] }
|
||||
%struct.tree_decl_u2 = type { ptr }
|
||||
%struct.tree_exp = type { %struct.tree_common, ptr, i32, ptr, [1 x ptr] }
|
||||
%struct.tree_identifier = type { %struct.tree_common, %struct.ht_identifier }
|
||||
%struct.tree_int_cst = type { %struct.tree_common, %struct.tree_int_cst_lowhi }
|
||||
%struct.tree_int_cst_lowhi = type { i64, i64 }
|
||||
%struct.tree_list = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node* }
|
||||
%struct.tree_live_info_d = type { %struct._var_map*, %struct.bitmap_head_def*, %struct.bitmap_head_def**, i32, %struct.bitmap_head_def** }
|
||||
%struct.tree_list = type { %struct.tree_common, ptr, ptr }
|
||||
%struct.tree_live_info_d = type { ptr, ptr, ptr, i32, ptr }
|
||||
%struct.tree_node = type { %struct.tree_decl }
|
||||
%struct.tree_partition_associator_d = type { %struct.varray_head_tag*, %struct.varray_head_tag*, i32*, i32*, i32, i32, %struct._var_map* }
|
||||
%struct.tree_phi_node = type { %struct.tree_common, %struct.tree_node*, i32, i32, i32, %struct.basic_block_def*, %struct.dataflow_d*, [1 x %struct.phi_arg_d] }
|
||||
%struct.tree_real_cst = type { %struct.tree_common, %struct.real_value* }
|
||||
%struct.tree_ssa_name = type { %struct.tree_common, %struct.tree_node*, i32, %struct.ptr_info_def*, %struct.tree_node*, i8* }
|
||||
%struct.tree_statement_list = type { %struct.tree_common, %struct.tree_statement_list_node*, %struct.tree_statement_list_node* }
|
||||
%struct.tree_statement_list_node = type { %struct.tree_statement_list_node*, %struct.tree_statement_list_node*, %struct.tree_node* }
|
||||
%struct.tree_stmt_iterator = type { %struct.tree_statement_list_node*, %struct.tree_node* }
|
||||
%struct.tree_partition_associator_d = type { ptr, ptr, ptr, ptr, i32, i32, ptr }
|
||||
%struct.tree_phi_node = type { %struct.tree_common, ptr, i32, i32, i32, ptr, ptr, [1 x %struct.phi_arg_d] }
|
||||
%struct.tree_real_cst = type { %struct.tree_common, ptr }
|
||||
%struct.tree_ssa_name = type { %struct.tree_common, ptr, i32, ptr, ptr, ptr }
|
||||
%struct.tree_statement_list = type { %struct.tree_common, ptr, ptr }
|
||||
%struct.tree_statement_list_node = type { ptr, ptr, ptr }
|
||||
%struct.tree_stmt_iterator = type { ptr, ptr }
|
||||
%struct.tree_string = type { %struct.tree_common, i32, [1 x i8] }
|
||||
%struct.tree_type = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i32, i16, i8, i8, i32, %struct.tree_node*, %struct.tree_node*, %struct.tree_decl_u1_a, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_type* }
|
||||
%struct.tree_type = type { %struct.tree_common, ptr, ptr, ptr, ptr, i32, i16, i8, i8, i32, ptr, ptr, %struct.tree_decl_u1_a, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr }
|
||||
%struct.tree_type_symtab = type { i32 }
|
||||
%struct.tree_value_handle = type { %struct.tree_common, %struct.value_set*, i32 }
|
||||
%struct.tree_vec = type { %struct.tree_common, i32, [1 x %struct.tree_node*] }
|
||||
%struct.tree_vector = type { %struct.tree_common, %struct.tree_node* }
|
||||
%struct.use_operand_ptr = type { %struct.tree_node** }
|
||||
%struct.tree_value_handle = type { %struct.tree_common, ptr, i32 }
|
||||
%struct.tree_vec = type { %struct.tree_common, i32, [1 x ptr] }
|
||||
%struct.tree_vector = type { %struct.tree_common, ptr }
|
||||
%struct.use_operand_ptr = type { ptr }
|
||||
%struct.use_optype_d = type { i32, [1 x %struct.def_operand_ptr] }
|
||||
%struct.v_def_use_operand_type_t = type { %struct.tree_node*, %struct.tree_node* }
|
||||
%struct.v_def_use_operand_type_t = type { ptr, ptr }
|
||||
%struct.v_may_def_optype_d = type { i32, [1 x %struct.v_def_use_operand_type_t] }
|
||||
%struct.v_must_def_optype_d = type { i32, [1 x %struct.v_def_use_operand_type_t] }
|
||||
%struct.value_set = type opaque
|
||||
%struct.var_ann_d = type { %struct.tree_ann_common_d, i8, i8, %struct.tree_node*, %struct.varray_head_tag*, i32, i32, i32, %struct.tree_node*, %struct.tree_node* }
|
||||
%struct.var_refs_queue = type { %struct.rtx_def*, i32, i32, %struct.var_refs_queue* }
|
||||
%struct.var_ann_d = type { %struct.tree_ann_common_d, i8, i8, ptr, ptr, i32, i32, i32, ptr, ptr }
|
||||
%struct.var_refs_queue = type { ptr, i32, i32, ptr }
|
||||
%struct.varasm_status = type opaque
|
||||
%struct.varray_data = type { [1 x i64] }
|
||||
%struct.varray_head_tag = type { i32, i32, i32, i8*, %struct.varray_data }
|
||||
%struct.vuse_optype_d = type { i32, [1 x %struct.tree_node*] }
|
||||
@basic_block_info = external global %struct.varray_head_tag* ; <%struct.varray_head_tag**> [#uses=1]
|
||||
%struct.varray_head_tag = type { i32, i32, i32, ptr, %struct.varray_data }
|
||||
%struct.vuse_optype_d = type { i32, [1 x ptr] }
|
||||
@basic_block_info = external global ptr ; <ptr> [#uses=1]
|
||||
|
||||
define void @calculate_live_on_entry_cond_true3632(%struct.varray_head_tag* %stack3023.6, i32* %tmp3629, %struct.VEC_edge*** %tmp3397.out) {
|
||||
define void @calculate_live_on_entry_cond_true3632(ptr %stack3023.6, ptr %tmp3629, ptr %tmp3397.out) {
|
||||
newFuncRoot:
|
||||
br label %cond_true3632
|
||||
|
||||
bb3502.exitStub: ; preds = %cond_true3632
|
||||
store %struct.VEC_edge** %tmp3397, %struct.VEC_edge*** %tmp3397.out
|
||||
store ptr %tmp3397, ptr %tmp3397.out
|
||||
ret void
|
||||
|
||||
cond_true3632: ; preds = %newFuncRoot
|
||||
%tmp3378 = load i32, i32* %tmp3629 ; <i32> [#uses=1]
|
||||
%tmp3378 = load i32, ptr %tmp3629 ; <i32> [#uses=1]
|
||||
%tmp3379 = add i32 %tmp3378, -1 ; <i32> [#uses=1]
|
||||
%tmp3381 = getelementptr %struct.varray_head_tag, %struct.varray_head_tag* %stack3023.6, i32 0, i32 4 ; <%struct.varray_data*> [#uses=1]
|
||||
%tmp3382 = bitcast %struct.varray_data* %tmp3381 to [1 x i32]* ; <[1 x i32]*> [#uses=1]
|
||||
%tmp3381 = getelementptr %struct.varray_head_tag, ptr %stack3023.6, i32 0, i32 4 ; <ptr> [#uses=1]
|
||||
%gep.upgrd.1 = zext i32 %tmp3379 to i64 ; <i64> [#uses=1]
|
||||
%tmp3383 = getelementptr [1 x i32], [1 x i32]* %tmp3382, i32 0, i64 %gep.upgrd.1 ; <i32*> [#uses=1]
|
||||
%tmp3384 = load i32, i32* %tmp3383 ; <i32> [#uses=1]
|
||||
%tmp3387 = load i32, i32* %tmp3629 ; <i32> [#uses=1]
|
||||
%tmp3383 = getelementptr [1 x i32], ptr %tmp3381, i32 0, i64 %gep.upgrd.1 ; <ptr> [#uses=1]
|
||||
%tmp3384 = load i32, ptr %tmp3383 ; <i32> [#uses=1]
|
||||
%tmp3387 = load i32, ptr %tmp3629 ; <i32> [#uses=1]
|
||||
%tmp3388 = add i32 %tmp3387, -1 ; <i32> [#uses=1]
|
||||
store i32 %tmp3388, i32* %tmp3629
|
||||
%tmp3391 = load %struct.varray_head_tag*, %struct.varray_head_tag** @basic_block_info ; <%struct.varray_head_tag*> [#uses=1]
|
||||
%tmp3393 = getelementptr %struct.varray_head_tag, %struct.varray_head_tag* %tmp3391, i32 0, i32 4 ; <%struct.varray_data*> [#uses=1]
|
||||
%tmp3394 = bitcast %struct.varray_data* %tmp3393 to [1 x %struct.basic_block_def*]* ; <[1 x %struct.basic_block_def*]*> [#uses=1]
|
||||
%tmp3395 = getelementptr [1 x %struct.basic_block_def*], [1 x %struct.basic_block_def*]* %tmp3394, i32 0, i32 %tmp3384 ; <%struct.basic_block_def**> [#uses=1]
|
||||
%tmp3396 = load %struct.basic_block_def*, %struct.basic_block_def** %tmp3395 ; <%struct.basic_block_def*> [#uses=1]
|
||||
%tmp3397 = getelementptr %struct.basic_block_def, %struct.basic_block_def* %tmp3396, i32 0, i32 3 ; <%struct.VEC_edge**> [#uses=1]
|
||||
store i32 %tmp3388, ptr %tmp3629
|
||||
%tmp3391 = load ptr, ptr @basic_block_info ; <ptr> [#uses=1]
|
||||
%tmp3393 = getelementptr %struct.varray_head_tag, ptr %tmp3391, i32 0, i32 4 ; <ptr> [#uses=1]
|
||||
%tmp3395 = getelementptr [1 x ptr], ptr %tmp3393, i32 0, i32 %tmp3384 ; <ptr> [#uses=1]
|
||||
%tmp3396 = load ptr, ptr %tmp3395 ; <ptr> [#uses=1]
|
||||
%tmp3397 = getelementptr %struct.basic_block_def, ptr %tmp3396, i32 0, i32 3 ; <ptr> [#uses=1]
|
||||
br label %bb3502.exitStub
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
; RUN: llc < %s -mtriple=i686--
|
||||
|
||||
define void @_ZN13QFSFileEngine4readEPcx() {
|
||||
%tmp201 = load i32, i32* null ; <i32> [#uses=1]
|
||||
%tmp201 = load i32, ptr null ; <i32> [#uses=1]
|
||||
%tmp201.upgrd.1 = sext i32 %tmp201 to i64 ; <i64> [#uses=1]
|
||||
%tmp202 = load i64, i64* null ; <i64> [#uses=1]
|
||||
%tmp202 = load i64, ptr null ; <i64> [#uses=1]
|
||||
%tmp203 = add i64 %tmp201.upgrd.1, %tmp202 ; <i64> [#uses=1]
|
||||
store i64 %tmp203, i64* null
|
||||
store i64 %tmp203, ptr null
|
||||
ret void
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
|
||||
; Bug in FindModifiedNodeSlot cause tmp14 load to become a zextload and shr 31
|
||||
; is then optimized away.
|
||||
@tree_code_type = external dso_local global [0 x i32] ; <[0 x i32]*> [#uses=1]
|
||||
@tree_code_type = external dso_local global [0 x i32] ; <ptr> [#uses=1]
|
||||
|
||||
define void @copy_if_shared_r() {
|
||||
; CHECK-LABEL: copy_if_shared_r:
|
||||
|
@ -18,14 +18,14 @@ define void @copy_if_shared_r() {
|
|||
; CHECK-NEXT: testb %al, %al
|
||||
; CHECK-NEXT: .LBB0_2: # %cond_true17
|
||||
; CHECK-NEXT: retl
|
||||
%tmp = load i32, i32* null ; <i32> [#uses=1]
|
||||
%tmp = load i32, ptr null ; <i32> [#uses=1]
|
||||
%tmp56 = and i32 %tmp, 255 ; <i32> [#uses=1]
|
||||
%gep.upgrd.1 = zext i32 %tmp56 to i64 ; <i64> [#uses=1]
|
||||
%tmp8 = getelementptr [0 x i32], [0 x i32]* @tree_code_type, i32 0, i64 %gep.upgrd.1 ; <i32*> [#uses=1]
|
||||
%tmp9 = load i32, i32* %tmp8 ; <i32> [#uses=1]
|
||||
%tmp8 = getelementptr [0 x i32], ptr @tree_code_type, i32 0, i64 %gep.upgrd.1 ; <ptr> [#uses=1]
|
||||
%tmp9 = load i32, ptr %tmp8 ; <i32> [#uses=1]
|
||||
%tmp10 = add i32 %tmp9, -1 ; <i32> [#uses=1]
|
||||
%tmp.upgrd.2 = icmp ugt i32 %tmp10, 2 ; <i1> [#uses=1]
|
||||
%tmp14 = load i32, i32* null ; <i32> [#uses=1]
|
||||
%tmp14 = load i32, ptr null ; <i32> [#uses=1]
|
||||
%tmp15 = lshr i32 %tmp14, 31 ; <i32> [#uses=1]
|
||||
%tmp15.upgrd.3 = trunc i32 %tmp15 to i8 ; <i8> [#uses=1]
|
||||
%tmp16 = icmp ne i8 %tmp15.upgrd.3, 0 ; <i1> [#uses=1]
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
; RUN: llc < %s -mtriple=i686--
|
||||
%struct.function = type opaque
|
||||
%struct.lang_decl = type opaque
|
||||
%struct.location_t = type { i8*, i32 }
|
||||
%struct.location_t = type { ptr, i32 }
|
||||
%struct.rtx_def = type opaque
|
||||
%struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, %union.tree_ann_d*, i8, i8, i8, i8, i8 }
|
||||
%struct.tree_decl = type { %struct.tree_common, %struct.location_t, i32, %struct.tree_node*, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, i32, %struct.tree_decl_u2, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_decl* }
|
||||
%struct.tree_common = type { ptr, ptr, ptr, i8, i8, i8, i8, i8 }
|
||||
%struct.tree_decl = type { %struct.tree_common, %struct.location_t, i32, ptr, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, %struct.tree_decl_u2, ptr, ptr, i64, ptr }
|
||||
%struct.tree_decl_u1 = type { i64 }
|
||||
%struct.tree_decl_u2 = type { %struct.function* }
|
||||
%struct.tree_decl_u2 = type { ptr }
|
||||
%struct.tree_node = type { %struct.tree_decl }
|
||||
%union.tree_ann_d = type opaque
|
||||
|
||||
|
@ -29,13 +29,12 @@ bb441: ; preds = %cond_next330
|
|||
ret void
|
||||
|
||||
cond_next472: ; preds = %cond_next330
|
||||
%tmp490 = load %struct.tree_node*, %struct.tree_node** null ; <%struct.tree_node*> [#uses=1]
|
||||
%tmp492 = getelementptr %struct.tree_node, %struct.tree_node* %tmp490, i32 0, i32 0, i32 0, i32 3 ; <i8*> [#uses=1]
|
||||
%tmp492.upgrd.1 = bitcast i8* %tmp492 to i32* ; <i32*> [#uses=1]
|
||||
%tmp493 = load i32, i32* %tmp492.upgrd.1 ; <i32> [#uses=1]
|
||||
%tmp490 = load ptr, ptr null ; <ptr> [#uses=1]
|
||||
%tmp492 = getelementptr %struct.tree_node, ptr %tmp490, i32 0, i32 0, i32 0, i32 3 ; <ptr> [#uses=1]
|
||||
%tmp493 = load i32, ptr %tmp492 ; <i32> [#uses=1]
|
||||
%tmp495 = trunc i32 %tmp493 to i8 ; <i8> [#uses=1]
|
||||
%tmp496 = icmp eq i8 %tmp495, 11 ; <i1> [#uses=1]
|
||||
%tmp496.upgrd.2 = zext i1 %tmp496 to i8 ; <i8> [#uses=1]
|
||||
store i8 %tmp496.upgrd.2, i8* null
|
||||
store i8 %tmp496.upgrd.2, ptr null
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
; RUN: llc < %s -mtriple=i686--
|
||||
@str = external dso_local global [18 x i8] ; <[18 x i8]*> [#uses=1]
|
||||
@str = external dso_local global [18 x i8] ; <ptr> [#uses=1]
|
||||
|
||||
define void @test() {
|
||||
bb.i:
|
||||
%tmp.i660 = load <4 x float>, <4 x float>* null ; <<4 x float>> [#uses=1]
|
||||
call void (i32, ...) @printf( i32 0, i8* getelementptr ([18 x i8], [18 x i8]* @str, i32 0, i64 0), double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00 )
|
||||
%tmp152.i = load <4 x i32>, <4 x i32>* null ; <<4 x i32>> [#uses=1]
|
||||
%tmp.i660 = load <4 x float>, ptr null ; <<4 x float>> [#uses=1]
|
||||
call void (i32, ...) @printf( i32 0, ptr @str, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00 )
|
||||
%tmp152.i = load <4 x i32>, ptr null ; <<4 x i32>> [#uses=1]
|
||||
%tmp156.i = bitcast <4 x i32> %tmp152.i to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp175.i = bitcast <4 x float> %tmp.i660 to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp176.i = xor <4 x i32> %tmp156.i, < i32 -1, i32 -1, i32 -1, i32 -1 > ; <<4 x i32>> [#uses=1]
|
||||
%tmp177.i = and <4 x i32> %tmp176.i, %tmp175.i ; <<4 x i32>> [#uses=1]
|
||||
%tmp190.i = or <4 x i32> %tmp177.i, zeroinitializer ; <<4 x i32>> [#uses=1]
|
||||
%tmp191.i = bitcast <4 x i32> %tmp190.i to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
store <4 x float> %tmp191.i, <4 x float>* null
|
||||
store <4 x float> %tmp191.i, ptr null
|
||||
ret void
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
; RUN: llc < %s -mtriple=i686-- -asm-verbose | FileCheck %s
|
||||
|
||||
@str = internal constant [14 x i8] c"Hello world!\0A\00" ; <[14 x i8]*> [#uses=1]
|
||||
@str.upgrd.1 = internal constant [13 x i8] c"Blah world!\0A\00" ; <[13 x i8]*> [#uses=1]
|
||||
@str = internal constant [14 x i8] c"Hello world!\0A\00" ; <ptr> [#uses=1]
|
||||
@str.upgrd.1 = internal constant [13 x i8] c"Blah world!\0A\00" ; <ptr> [#uses=1]
|
||||
|
||||
define i32 @test(i32 %argc, i8** %argv) nounwind {
|
||||
define i32 @test(i32 %argc, ptr %argv) nounwind {
|
||||
entry:
|
||||
; CHECK: cmpl $2
|
||||
; CHECK-NEXT: je
|
||||
|
@ -15,15 +15,15 @@ entry:
|
|||
]
|
||||
|
||||
bb: ; preds = %entry
|
||||
%tmp1 = tail call i32 (i8*, ...) @printf( i8* getelementptr ([14 x i8], [14 x i8]* @str, i32 0, i64 0) ) ; <i32> [#uses=0]
|
||||
%tmp1 = tail call i32 (ptr, ...) @printf( ptr @str ) ; <i32> [#uses=0]
|
||||
ret i32 0
|
||||
|
||||
bb2: ; preds = %entry
|
||||
%tmp4 = tail call i32 (i8*, ...) @printf( i8* getelementptr ([13 x i8], [13 x i8]* @str.upgrd.1, i32 0, i64 0) ) ; <i32> [#uses=0]
|
||||
%tmp4 = tail call i32 (ptr, ...) @printf( ptr @str.upgrd.1 ) ; <i32> [#uses=0]
|
||||
ret i32 0
|
||||
|
||||
UnifiedReturnBlock: ; preds = %entry
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
declare i32 @printf(i8*, ...)
|
||||
declare i32 @printf(ptr, ...)
|
||||
|
|
|
@ -16,7 +16,7 @@ define void @handle_vector_size_attribute() nounwind {
|
|||
; CHECK-NEXT: .LBB0_2: # %bb84
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
%tmp69 = load i32, i32* null ; <i32> [#uses=1]
|
||||
%tmp69 = load i32, ptr null ; <i32> [#uses=1]
|
||||
switch i32 %tmp69, label %bb84 [
|
||||
i32 2, label %bb77
|
||||
i32 1, label %bb77
|
||||
|
@ -24,7 +24,7 @@ entry:
|
|||
|
||||
bb77: ; preds = %entry, %entry
|
||||
%tmp99 = udiv i64 0, 0 ; <i64> [#uses=1]
|
||||
%tmp = load volatile i8, i8* null ; <i8> [#uses=1]
|
||||
%tmp = load volatile i8, ptr null ; <i8> [#uses=1]
|
||||
%tmp114 = icmp eq i64 0, 0 ; <i1> [#uses=1]
|
||||
br label %cond_true115
|
||||
|
||||
|
@ -32,7 +32,7 @@ bb84: ; preds = %entry
|
|||
ret void
|
||||
|
||||
cond_true115: ; preds = %bb77
|
||||
%tmp118 = load volatile i8, i8* null ; <i8> [#uses=1]
|
||||
%tmp118 = load volatile i8, ptr null ; <i8> [#uses=1]
|
||||
br label %cond_true120
|
||||
|
||||
cond_true120: ; preds = %cond_true115
|
||||
|
|
|
@ -3,28 +3,28 @@
|
|||
target datalayout = "e-p:32:32"
|
||||
target triple = "i686-pc-linux-gnu"
|
||||
%struct.QBasicAtomic = type { i32 }
|
||||
%struct.QByteArray = type { %"struct.QByteArray::Data"* }
|
||||
%"struct.QByteArray::Data" = type { %struct.QBasicAtomic, i32, i32, i8*, [1 x i8] }
|
||||
%struct.QByteArray = type { ptr }
|
||||
%"struct.QByteArray::Data" = type { %struct.QBasicAtomic, i32, i32, ptr, [1 x i8] }
|
||||
%struct.QFactoryLoader = type { %struct.QObject }
|
||||
%struct.QImageIOHandler = type { i32 (...)**, %struct.QImageIOHandlerPrivate* }
|
||||
%struct.QImageIOHandler = type { ptr, ptr }
|
||||
%struct.QImageIOHandlerPrivate = type opaque
|
||||
%struct.QImageWriter = type { %struct.QImageWriterPrivate* }
|
||||
%struct.QImageWriterPrivate = type { %struct.QByteArray, %struct.QFactoryLoader*, i1, %struct.QImageIOHandler*, i32, float, %struct.QString, %struct.QString, i32, %struct.QString, %struct.QImageWriter* }
|
||||
%struct.QImageWriter = type { ptr }
|
||||
%struct.QImageWriterPrivate = type { %struct.QByteArray, ptr, i1, ptr, i32, float, %struct.QString, %struct.QString, i32, %struct.QString, ptr }
|
||||
%"struct.QList<QByteArray>" = type { %"struct.QList<QByteArray>::._20" }
|
||||
%"struct.QList<QByteArray>::._20" = type { %struct.QListData }
|
||||
%struct.QListData = type { %"struct.QListData::Data"* }
|
||||
%"struct.QListData::Data" = type { %struct.QBasicAtomic, i32, i32, i32, i8, [1 x i8*] }
|
||||
%struct.QObject = type { i32 (...)**, %struct.QObjectData* }
|
||||
%struct.QObjectData = type { i32 (...)**, %struct.QObject*, %struct.QObject*, %"struct.QList<QByteArray>", i8, [3 x i8], i32, i32 }
|
||||
%struct.QString = type { %"struct.QString::Data"* }
|
||||
%"struct.QString::Data" = type { %struct.QBasicAtomic, i32, i32, i16*, i8, i8, [1 x i16] }
|
||||
%struct.QListData = type { ptr }
|
||||
%"struct.QListData::Data" = type { %struct.QBasicAtomic, i32, i32, i32, i8, [1 x ptr] }
|
||||
%struct.QObject = type { ptr, ptr }
|
||||
%struct.QObjectData = type { ptr, ptr, ptr, %"struct.QList<QByteArray>", i8, [3 x i8], i32, i32 }
|
||||
%struct.QString = type { ptr }
|
||||
%"struct.QString::Data" = type { %struct.QBasicAtomic, i32, i32, ptr, i8, i8, [1 x i16] }
|
||||
|
||||
define i1 @_ZNK12QImageWriter8canWriteEv() {
|
||||
%tmp62 = load %struct.QImageWriterPrivate*, %struct.QImageWriterPrivate** null ; <%struct.QImageWriterPrivate*> [#uses=1]
|
||||
%tmp = getelementptr %struct.QImageWriterPrivate, %struct.QImageWriterPrivate* %tmp62, i32 0, i32 9 ; <%struct.QString*> [#uses=1]
|
||||
%tmp75 = call %struct.QString* @_ZN7QStringaSERKS_( %struct.QString* %tmp, %struct.QString* null ) ; <%struct.QString*> [#uses=0]
|
||||
call void asm sideeffect "lock\0Adecl $0\0Asetne 1", "=*m"( i32* elementtype( i32) null )
|
||||
%tmp62 = load ptr, ptr null ; <ptr> [#uses=1]
|
||||
%tmp = getelementptr %struct.QImageWriterPrivate, ptr %tmp62, i32 0, i32 9 ; <ptr> [#uses=1]
|
||||
%tmp75 = call ptr @_ZN7QStringaSERKS_( ptr %tmp, ptr null ) ; <ptr> [#uses=0]
|
||||
call void asm sideeffect "lock\0Adecl $0\0Asetne 1", "=*m"( ptr elementtype( i32) null )
|
||||
ret i1 false
|
||||
}
|
||||
|
||||
declare %struct.QString* @_ZN7QStringaSERKS_(%struct.QString*, %struct.QString*)
|
||||
declare ptr @_ZN7QStringaSERKS_(ptr, ptr)
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
; CHECK: ({{%rdi|%rcx}},%rax,8)
|
||||
; CHECK-NOT: {{addq.*8}}
|
||||
|
||||
define void @foo(double* %y) nounwind {
|
||||
define void @foo(ptr %y) nounwind {
|
||||
entry:
|
||||
br label %bb
|
||||
|
||||
bb:
|
||||
%i = phi i64 [ 0, %entry ], [ %k, %bb ]
|
||||
%j = getelementptr double, double* %y, i64 %i
|
||||
store double 0.000000e+00, double* %j
|
||||
%j = getelementptr double, ptr %y, i64 %i
|
||||
store double 0.000000e+00, ptr %j
|
||||
%k = add i64 %i, 1
|
||||
%n = icmp eq i64 %k, 0
|
||||
br i1 %n, label %return, label %bb
|
||||
|
|
|
@ -6,7 +6,7 @@ target datalayout = "e-p:64:64"
|
|||
@i6000 = dso_local global [128 x i64] zeroinitializer, align 16
|
||||
|
||||
|
||||
define dso_local void @foo(i32* %a0, i32* %a1, i32* %a2, i32* %a3, i32* %a4, i32* %a5) {
|
||||
define dso_local void @foo(ptr %a0, ptr %a1, ptr %a2, ptr %a3, ptr %a4, ptr %a5) {
|
||||
; CHECK-LABEL: foo:
|
||||
; CHECK: # %bb.0: # %b
|
||||
; CHECK-NEXT: pushq %rbp
|
||||
|
@ -249,12 +249,12 @@ define dso_local void @foo(i32* %a0, i32* %a1, i32* %a2, i32* %a3, i32* %a4, i32
|
|||
; CHECK-NEXT: .cfi_def_cfa %rsp, 8
|
||||
; CHECK-NEXT: retq
|
||||
b:
|
||||
%r = load i32, i32* %a0
|
||||
%r2 = load i32, i32* %a1
|
||||
%r4 = load i32, i32* %a2
|
||||
%r6 = load i32, i32* %a3
|
||||
%r8 = load i32, i32* %a4
|
||||
%r14 = load i32, i32* %a5
|
||||
%r = load i32, ptr %a0
|
||||
%r2 = load i32, ptr %a1
|
||||
%r4 = load i32, ptr %a2
|
||||
%r6 = load i32, ptr %a3
|
||||
%r8 = load i32, ptr %a4
|
||||
%r14 = load i32, ptr %a5
|
||||
%rx = sext i32 %r2 to i64
|
||||
%r9 = sext i32 %r to i64
|
||||
%r11 = add i64 %rx, 0
|
||||
|
@ -272,13 +272,12 @@ b:
|
|||
%r24 = shl i32 %r23a, 0
|
||||
%r25 = add i32 %r24, 0
|
||||
%ras2 = alloca i8, i32 %r25, align 16
|
||||
%r28 = getelementptr i8, i8* %ras2, i32 0
|
||||
%r38 = shl i64 %r12, 0
|
||||
%s2013 = add i64 %r38, 0
|
||||
%c22012 = getelementptr i8, i8* %ras2, i64 %s2013
|
||||
%c22012 = getelementptr i8, ptr %ras2, i64 %s2013
|
||||
%r42 = shl i64 %r12, 0
|
||||
%s2011 = add i64 %r42, 16
|
||||
%c22010 = getelementptr i8, i8* %ras2, i64 %s2011
|
||||
%c22010 = getelementptr i8, ptr %ras2, i64 %s2011
|
||||
%r50 = add i64 %r16, 0
|
||||
%r51 = icmp slt i64 %r50, 0
|
||||
%r50sh = shl i64 %r50, 0
|
||||
|
@ -286,7 +285,7 @@ b:
|
|||
%r54 = select i1 %r51, i64 0, i64 %r50j
|
||||
%r56 = mul i64 %r54, %r12
|
||||
%r28s = add i64 %r56, 16
|
||||
%c2 = getelementptr i8, i8* %ras2, i64 %r28s
|
||||
%c2 = getelementptr i8, ptr %ras2, i64 %r28s
|
||||
%r60 = sub i32 %r2, %r
|
||||
%r61 = icmp slt i32 %r60, 0
|
||||
br i1 %r61, label %a29b, label %b63
|
||||
|
@ -373,14 +372,14 @@ b341:
|
|||
%d753 = bitcast i64 %w1874 to i64
|
||||
%r343 = add i64 %s661, 0
|
||||
%r346 = add i64 %r343, 0
|
||||
%r347 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r346
|
||||
%r348 = load float, float* %r347
|
||||
%r347 = getelementptr float, ptr @i6000, i64 %r346
|
||||
%r348 = load float, ptr %r347
|
||||
%r352 = add i64 %r343, 0
|
||||
%r353 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r352
|
||||
%r354 = load float, float* %r353
|
||||
%r362 = load float, float* bitcast ([128 x i64]* @i6000 to float*)
|
||||
%r353 = getelementptr float, ptr @i6000, i64 %r352
|
||||
%r354 = load float, ptr %r353
|
||||
%r362 = load float, ptr @i6000
|
||||
%r363 = fadd float 0.000000e+00, %r362
|
||||
%r370 = load float, float* bitcast ([128 x i64]* @i6000 to float*)
|
||||
%r370 = load float, ptr @i6000
|
||||
%r376 = icmp slt i64 %r16, 0
|
||||
br i1 %r376, label %b377, label %a35b
|
||||
b377:
|
||||
|
@ -424,9 +423,9 @@ b535:
|
|||
%s923 = phi i64 [ 0, %b514 ], [ %r799, %b712 ]
|
||||
%s933 = phi i64 [ %r533, %b514 ], [ %r795, %b712 ]
|
||||
%r538 = add i64 %w1855, 0
|
||||
%r539 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r538
|
||||
%r540 = load float, float* %r539
|
||||
%r551 = load float, float* bitcast ([128 x i64]* @i6000 to float*)
|
||||
%r539 = getelementptr float, ptr @i6000, i64 %r538
|
||||
%r540 = load float, ptr %r539
|
||||
%r551 = load float, ptr @i6000
|
||||
%r562 = sub i64 %s933, 0
|
||||
%r564 = icmp slt i64 %r512, 0
|
||||
br i1 %r564, label %b565, label %a45b
|
||||
|
@ -453,23 +452,23 @@ b712:
|
|||
a45b714:
|
||||
%r717 = add i64 %e944, 0
|
||||
%r720 = add i64 %r717, 0
|
||||
%r721 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r720
|
||||
%r722 = load float, float* %r721
|
||||
%r721 = getelementptr float, ptr @i6000, i64 %r720
|
||||
%r722 = load float, ptr %r721
|
||||
%r726 = add i64 %r717, 0
|
||||
%r727 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r726
|
||||
%r728 = load float, float* %r727
|
||||
%r727 = getelementptr float, ptr @i6000, i64 %r726
|
||||
%r728 = load float, ptr %r727
|
||||
%r732 = add i64 %r717, 0
|
||||
%r733 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r732
|
||||
%r734 = load float, float* %r733
|
||||
%r733 = getelementptr float, ptr @i6000, i64 %r732
|
||||
%r734 = load float, ptr %r733
|
||||
%r738 = add i64 %r717, 0
|
||||
%r739 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r738
|
||||
%r740 = load float, float* %r739
|
||||
%r739 = getelementptr float, ptr @i6000, i64 %r738
|
||||
%r740 = load float, ptr %r739
|
||||
%r744 = add i64 %r717, 0
|
||||
%r745 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r744
|
||||
%r746 = load float, float* %r745
|
||||
%r745 = getelementptr float, ptr @i6000, i64 %r744
|
||||
%r746 = load float, ptr %r745
|
||||
%r750 = add i64 %r717, 0
|
||||
%r751 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r750
|
||||
%r752 = load float, float* %r751
|
||||
%r751 = getelementptr float, ptr @i6000, i64 %r750
|
||||
%r752 = load float, ptr %r751
|
||||
%r753 = fadd float %r752, %r746
|
||||
%r754 = fadd float %r728, %r722
|
||||
%r755 = fadd float %r734, %r754
|
||||
|
@ -477,11 +476,11 @@ a45b714:
|
|||
%r757 = fadd float %r753, %r756
|
||||
%r759 = fadd float %r757, %r540
|
||||
%r770 = add i64 %r717, 0
|
||||
%r771 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r770
|
||||
%r772 = load float, float* %r771
|
||||
%r771 = getelementptr float, ptr @i6000, i64 %r770
|
||||
%r772 = load float, ptr %r771
|
||||
%r776 = add i64 %r717, 0
|
||||
%r777 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r776
|
||||
%r778 = load float, float* %r777
|
||||
%r777 = getelementptr float, ptr @i6000, i64 %r776
|
||||
%r778 = load float, ptr %r777
|
||||
%r781 = fadd float %r363, %r772
|
||||
%r782 = fadd float %r781, %r778
|
||||
%r783 = fadd float %r551, %r782
|
||||
|
@ -494,7 +493,7 @@ b820:
|
|||
%r844 = add i64 %r16, 0
|
||||
%r846 = sext i32 %r60 to i64
|
||||
%r847 = add i64 %r846, 0
|
||||
%r851 = load float, float* bitcast ([128 x i64]* @i6000 to float*)
|
||||
%r851 = load float, ptr @i6000
|
||||
%r856 = sub i64 %rx, 0
|
||||
br label %b858
|
||||
b858:
|
||||
|
@ -506,11 +505,11 @@ b858:
|
|||
%s1173 = add i64 %b1902, 0
|
||||
%r859 = add i64 %r856, 0
|
||||
%r862 = add i64 %w1891, 0
|
||||
%r863 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r862
|
||||
%r864 = load float, float* %r863
|
||||
%r863 = getelementptr float, ptr @i6000, i64 %r862
|
||||
%r864 = load float, ptr %r863
|
||||
%r868 = add i64 %w1891, 0
|
||||
%r869 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r868
|
||||
%r870 = load float, float* %r869
|
||||
%r869 = getelementptr float, ptr @i6000, i64 %r868
|
||||
%r870 = load float, ptr %r869
|
||||
%r873 = sub i64 %r859, 0
|
||||
%r876 = sub i64 %s1173, 0
|
||||
%r878 = icmp slt i64 %r847, 0
|
||||
|
@ -540,16 +539,14 @@ b1016:
|
|||
a53b1019:
|
||||
%w1885 = phi i64 [ 0, %a53b1019q ], [ %v1886, %a53b1019 ]
|
||||
%r1022 = add i64 %r876, 0
|
||||
%r1024 = bitcast i8* %c2 to float*
|
||||
%r1025 = add i64 %r1022, 0
|
||||
%r1026 = getelementptr float, float* %r1024, i64 %r1025
|
||||
%r1027 = load float, float* %r1026
|
||||
%r1026 = getelementptr float, ptr %c2, i64 %r1025
|
||||
%r1027 = load float, ptr %r1026
|
||||
%r1032 = add i64 %r873, 0
|
||||
%r1033 = add i64 %r1032, 0
|
||||
%r1034 = getelementptr float, float* %r1024, i64 %r1033
|
||||
%r1035 = load float, float* %r1034
|
||||
%r1037 = bitcast i8* %c22010 to float*
|
||||
%r1040 = getelementptr float, float* %r1037, i64 %r1025
|
||||
%r1034 = getelementptr float, ptr %c2, i64 %r1033
|
||||
%r1035 = load float, ptr %r1034
|
||||
%r1040 = getelementptr float, ptr %c22010, i64 %r1025
|
||||
%r1044 = fadd float %r864, %r1035
|
||||
%r1046 = fadd float %r870, %r1027
|
||||
%r1047 = fadd float %r1044, %r1046
|
||||
|
@ -576,11 +573,10 @@ b1117:
|
|||
%d1353 = bitcast i64 %w1915 to i64
|
||||
%r1120 = add i64 %s661, 0
|
||||
%r1121 = add i64 %r1120, 0
|
||||
%r1122 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r1121
|
||||
%r1123 = load float, float* %r1122
|
||||
%r1132 = bitcast i8* %c22012 to float*
|
||||
%r1134 = getelementptr float, float* %r1132, i64 %w1915
|
||||
%r1135 = load float, float* %r1134
|
||||
%r1122 = getelementptr float, ptr @i6000, i64 %r1121
|
||||
%r1123 = load float, ptr %r1122
|
||||
%r1134 = getelementptr float, ptr %c22012, i64 %w1915
|
||||
%r1135 = load float, ptr %r1134
|
||||
%r1136 = fadd float %r1123, %r1135
|
||||
%r1138 = icmp slt i64 %r1114, 0
|
||||
br i1 %r1138, label %b1139, label %a63b
|
||||
|
@ -650,8 +646,8 @@ b1342:
|
|||
%r1352 = add i64 %s1523, 0
|
||||
%r1355 = sub i64 %r1352, 0
|
||||
%r1370 = add i64 %d1533, 0
|
||||
%r1371 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r1370
|
||||
%r1372 = load float, float* %r1371
|
||||
%r1371 = getelementptr float, ptr @i6000, i64 %r1370
|
||||
%r1372 = load float, ptr %r1371
|
||||
br label %a74b
|
||||
a74b:
|
||||
%w1958 = phi i64 [ 0, %b1342 ], [ %v1959, %a74b ]
|
||||
|
@ -680,19 +676,18 @@ a97b:
|
|||
%r1613 = add i64 %w1964, 0
|
||||
%r1614 = mul i64 %r1613, 0
|
||||
%r1622 = add i64 %r1614, 0
|
||||
%r1754 = bitcast i8* %r28 to float*
|
||||
%r1756 = getelementptr float, float* %r1754, i64 %w1970
|
||||
%r1757 = load float, float* %r1756
|
||||
%r1756 = getelementptr float, ptr %ras2, i64 %w1970
|
||||
%r1757 = load float, ptr %r1756
|
||||
%r1761 = add i64 %r1622, 0
|
||||
%r1762 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r1761
|
||||
%r1763 = load float, float* %r1762
|
||||
%r1762 = getelementptr float, ptr @i6000, i64 %r1761
|
||||
%r1763 = load float, ptr %r1762
|
||||
%r1767 = add i64 %r1622, 0
|
||||
%r1768 = getelementptr float, float* bitcast ([128 x i64]* @i6000 to float*), i64 %r1767
|
||||
%r1768 = getelementptr float, ptr @i6000, i64 %r1767
|
||||
%r1772 = fadd float %r1763, 0.000000e+00
|
||||
%r1773 = fadd float %r1772, 0.000000e+00
|
||||
%r1809 = fadd float %r1757, 0.000000e+00
|
||||
%r1810 = fadd float %r1773, %r1809
|
||||
store float %r1810, float* %r1768
|
||||
store float %r1810, ptr %r1768
|
||||
%r1818 = add i64 %w1970, 0
|
||||
%r1826 = icmp slt i64 %r1818, 0
|
||||
%v1971 = add i64 %w1970, 0
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
|
||||
|
||||
;; This example can't fold the or into an LEA.
|
||||
define i32 @test(float ** %tmp2, i32 %tmp12) nounwind {
|
||||
define i32 @test(ptr %tmp2, i32 %tmp12) nounwind {
|
||||
; CHECK-LABEL: test:
|
||||
; CHECK-NOT: ret
|
||||
; CHECK: orl $1, %{{.*}}
|
||||
; CHECK: ret
|
||||
|
||||
%tmp3 = load float*, float** %tmp2
|
||||
%tmp3 = load ptr, ptr %tmp2
|
||||
%tmp132 = shl i32 %tmp12, 2 ; <i32> [#uses=1]
|
||||
%tmp4 = bitcast float* %tmp3 to i8* ; <i8*> [#uses=1]
|
||||
%ctg2 = getelementptr i8, i8* %tmp4, i32 %tmp132 ; <i8*> [#uses=1]
|
||||
%tmp6 = ptrtoint i8* %ctg2 to i32 ; <i32> [#uses=1]
|
||||
%ctg2 = getelementptr i8, ptr %tmp3, i32 %tmp132 ; <ptr> [#uses=1]
|
||||
%tmp6 = ptrtoint ptr %ctg2 to i32 ; <i32> [#uses=1]
|
||||
%tmp14 = or i32 %tmp6, 1 ; <i32> [#uses=1]
|
||||
ret i32 %tmp14
|
||||
}
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
; RUN: llc < %s -mtriple=i686-pc-linux-gnu -relocation-model=pic
|
||||
; PR1027
|
||||
|
||||
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
|
||||
%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
|
||||
@stderr = external global %struct._IO_FILE*
|
||||
%struct._IO_FILE = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i16, i8, [1 x i8], ptr, i64, ptr, ptr, ptr, ptr, i32, i32, [40 x i8] }
|
||||
%struct._IO_marker = type { ptr, ptr, i32 }
|
||||
@stderr = external global ptr
|
||||
|
||||
define void @__eprintf(i8* %string, i8* %expression, i32 %line, i8* %filename) {
|
||||
%tmp = load %struct._IO_FILE*, %struct._IO_FILE** @stderr
|
||||
%tmp5 = tail call i32 (%struct._IO_FILE*, i8*, ...) @fprintf( %struct._IO_FILE* %tmp, i8* %string, i8* %expression, i32 %line, i8* %filename )
|
||||
%tmp6 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr
|
||||
%tmp7 = tail call i32 @fflush( %struct._IO_FILE* %tmp6 )
|
||||
define void @__eprintf(ptr %string, ptr %expression, i32 %line, ptr %filename) {
|
||||
%tmp = load ptr, ptr @stderr
|
||||
%tmp5 = tail call i32 (ptr, ptr, ...) @fprintf( ptr %tmp, ptr %string, ptr %expression, i32 %line, ptr %filename )
|
||||
%tmp6 = load ptr, ptr @stderr
|
||||
%tmp7 = tail call i32 @fflush( ptr %tmp6 )
|
||||
tail call void @abort( )
|
||||
unreachable
|
||||
}
|
||||
|
||||
declare i32 @fprintf(%struct._IO_FILE*, i8*, ...)
|
||||
declare i32 @fprintf(ptr, ptr, ...)
|
||||
|
||||
declare i32 @fflush(%struct._IO_FILE*)
|
||||
declare i32 @fflush(ptr)
|
||||
|
||||
declare void @abort()
|
||||
|
|
|
@ -9,7 +9,7 @@ define void @test() nounwind {
|
|||
; CHECK-NEXT: ud2
|
||||
test.exit:
|
||||
fmul <4 x float> zeroinitializer, zeroinitializer ; <<4 x float>>:0 [#uses=4]
|
||||
load <4 x float>, <4 x float>* null ; <<4 x float>>:1 [#uses=1]
|
||||
load <4 x float>, ptr null ; <<4 x float>>:1 [#uses=1]
|
||||
shufflevector <4 x float> %1, <4 x float> undef, <4 x i32> < i32 3, i32 3, i32 3, i32 3 > ; <<4 x float>>:2 [#uses=1]
|
||||
fmul <4 x float> %0, %2 ; <<4 x float>>:3 [#uses=1]
|
||||
fsub <4 x float> zeroinitializer, %3 ; <<4 x float>>:4 [#uses=1]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
; RUN: llc < %s -mtriple=i686-darwin | FileCheck %s
|
||||
|
||||
define void @foo(i8** %buf, i32 %size, i32 %col, i8* %p) nounwind {
|
||||
define void @foo(ptr %buf, i32 %size, i32 %col, ptr %p) nounwind {
|
||||
entry:
|
||||
; CHECK-LABEL: @foo
|
||||
; CHECK: push
|
||||
|
@ -24,51 +24,51 @@ bb.preheader: ; preds = %entry
|
|||
bb: ; preds = %bb, %bb.preheader
|
||||
%i.073.0 = phi i32 [ 0, %bb.preheader ], [ %indvar.next, %bb ] ; <i32> [#uses=3]
|
||||
%p_addr.076.0.rec = mul i32 %i.073.0, 9 ; <i32> [#uses=9]
|
||||
%p_addr.076.0 = getelementptr i8, i8* %p, i32 %p_addr.076.0.rec ; <i8*> [#uses=1]
|
||||
%tmp2 = getelementptr i8*, i8** %buf, i32 %i.073.0 ; <i8**> [#uses=1]
|
||||
%tmp3 = load i8*, i8** %tmp2 ; <i8*> [#uses=8]
|
||||
%tmp5 = getelementptr i8, i8* %tmp3, i32 %col ; <i8*> [#uses=1]
|
||||
%tmp7 = load i8, i8* %p_addr.076.0 ; <i8> [#uses=1]
|
||||
store i8 %tmp7, i8* %tmp5
|
||||
%p_addr.076.0 = getelementptr i8, ptr %p, i32 %p_addr.076.0.rec ; <ptr> [#uses=1]
|
||||
%tmp2 = getelementptr ptr, ptr %buf, i32 %i.073.0 ; <ptr> [#uses=1]
|
||||
%tmp3 = load ptr, ptr %tmp2 ; <ptr> [#uses=8]
|
||||
%tmp5 = getelementptr i8, ptr %tmp3, i32 %col ; <ptr> [#uses=1]
|
||||
%tmp7 = load i8, ptr %p_addr.076.0 ; <i8> [#uses=1]
|
||||
store i8 %tmp7, ptr %tmp5
|
||||
%p_addr.076.0.sum93 = add i32 %p_addr.076.0.rec, 1 ; <i32> [#uses=1]
|
||||
%tmp11 = getelementptr i8, i8* %p, i32 %p_addr.076.0.sum93 ; <i8*> [#uses=1]
|
||||
%tmp13 = load i8, i8* %tmp11 ; <i8> [#uses=1]
|
||||
%tmp15 = getelementptr i8, i8* %tmp3, i32 %tmp5.sum72 ; <i8*> [#uses=1]
|
||||
store i8 %tmp13, i8* %tmp15
|
||||
%tmp11 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum93 ; <ptr> [#uses=1]
|
||||
%tmp13 = load i8, ptr %tmp11 ; <i8> [#uses=1]
|
||||
%tmp15 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum72 ; <ptr> [#uses=1]
|
||||
store i8 %tmp13, ptr %tmp15
|
||||
%p_addr.076.0.sum92 = add i32 %p_addr.076.0.rec, 2 ; <i32> [#uses=1]
|
||||
%tmp17 = getelementptr i8, i8* %p, i32 %p_addr.076.0.sum92 ; <i8*> [#uses=1]
|
||||
%tmp19 = load i8, i8* %tmp17 ; <i8> [#uses=1]
|
||||
%tmp21 = getelementptr i8, i8* %tmp3, i32 %tmp5.sum71 ; <i8*> [#uses=1]
|
||||
store i8 %tmp19, i8* %tmp21
|
||||
%tmp17 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum92 ; <ptr> [#uses=1]
|
||||
%tmp19 = load i8, ptr %tmp17 ; <i8> [#uses=1]
|
||||
%tmp21 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum71 ; <ptr> [#uses=1]
|
||||
store i8 %tmp19, ptr %tmp21
|
||||
%p_addr.076.0.sum91 = add i32 %p_addr.076.0.rec, 3 ; <i32> [#uses=1]
|
||||
%tmp23 = getelementptr i8, i8* %p, i32 %p_addr.076.0.sum91 ; <i8*> [#uses=1]
|
||||
%tmp25 = load i8, i8* %tmp23 ; <i8> [#uses=1]
|
||||
%tmp27 = getelementptr i8, i8* %tmp3, i32 %tmp5.sum70 ; <i8*> [#uses=1]
|
||||
store i8 %tmp25, i8* %tmp27
|
||||
%tmp23 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum91 ; <ptr> [#uses=1]
|
||||
%tmp25 = load i8, ptr %tmp23 ; <i8> [#uses=1]
|
||||
%tmp27 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum70 ; <ptr> [#uses=1]
|
||||
store i8 %tmp25, ptr %tmp27
|
||||
%p_addr.076.0.sum90 = add i32 %p_addr.076.0.rec, 4 ; <i32> [#uses=1]
|
||||
%tmp29 = getelementptr i8, i8* %p, i32 %p_addr.076.0.sum90 ; <i8*> [#uses=1]
|
||||
%tmp31 = load i8, i8* %tmp29 ; <i8> [#uses=1]
|
||||
%tmp33 = getelementptr i8, i8* %tmp3, i32 %tmp5.sum69 ; <i8*> [#uses=2]
|
||||
store i8 %tmp31, i8* %tmp33
|
||||
%tmp29 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum90 ; <ptr> [#uses=1]
|
||||
%tmp31 = load i8, ptr %tmp29 ; <i8> [#uses=1]
|
||||
%tmp33 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum69 ; <ptr> [#uses=2]
|
||||
store i8 %tmp31, ptr %tmp33
|
||||
%p_addr.076.0.sum89 = add i32 %p_addr.076.0.rec, 5 ; <i32> [#uses=1]
|
||||
%tmp35 = getelementptr i8, i8* %p, i32 %p_addr.076.0.sum89 ; <i8*> [#uses=1]
|
||||
%tmp37 = load i8, i8* %tmp35 ; <i8> [#uses=1]
|
||||
%tmp39 = getelementptr i8, i8* %tmp3, i32 %tmp5.sum68 ; <i8*> [#uses=1]
|
||||
store i8 %tmp37, i8* %tmp39
|
||||
%tmp35 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum89 ; <ptr> [#uses=1]
|
||||
%tmp37 = load i8, ptr %tmp35 ; <i8> [#uses=1]
|
||||
%tmp39 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum68 ; <ptr> [#uses=1]
|
||||
store i8 %tmp37, ptr %tmp39
|
||||
%p_addr.076.0.sum88 = add i32 %p_addr.076.0.rec, 6 ; <i32> [#uses=1]
|
||||
%tmp41 = getelementptr i8, i8* %p, i32 %p_addr.076.0.sum88 ; <i8*> [#uses=1]
|
||||
%tmp43 = load i8, i8* %tmp41 ; <i8> [#uses=1]
|
||||
store i8 %tmp43, i8* %tmp33
|
||||
%tmp41 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum88 ; <ptr> [#uses=1]
|
||||
%tmp43 = load i8, ptr %tmp41 ; <i8> [#uses=1]
|
||||
store i8 %tmp43, ptr %tmp33
|
||||
%p_addr.076.0.sum87 = add i32 %p_addr.076.0.rec, 7 ; <i32> [#uses=1]
|
||||
%tmp47 = getelementptr i8, i8* %p, i32 %p_addr.076.0.sum87 ; <i8*> [#uses=1]
|
||||
%tmp49 = load i8, i8* %tmp47 ; <i8> [#uses=1]
|
||||
%tmp51 = getelementptr i8, i8* %tmp3, i32 %tmp5.sum66 ; <i8*> [#uses=1]
|
||||
store i8 %tmp49, i8* %tmp51
|
||||
%tmp47 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum87 ; <ptr> [#uses=1]
|
||||
%tmp49 = load i8, ptr %tmp47 ; <i8> [#uses=1]
|
||||
%tmp51 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum66 ; <ptr> [#uses=1]
|
||||
store i8 %tmp49, ptr %tmp51
|
||||
%p_addr.076.0.sum = add i32 %p_addr.076.0.rec, 8 ; <i32> [#uses=1]
|
||||
%tmp53 = getelementptr i8, i8* %p, i32 %p_addr.076.0.sum ; <i8*> [#uses=1]
|
||||
%tmp55 = load i8, i8* %tmp53 ; <i8> [#uses=1]
|
||||
%tmp57 = getelementptr i8, i8* %tmp3, i32 %tmp5.sum ; <i8*> [#uses=1]
|
||||
store i8 %tmp55, i8* %tmp57
|
||||
%tmp53 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum ; <ptr> [#uses=1]
|
||||
%tmp55 = load i8, ptr %tmp53 ; <i8> [#uses=1]
|
||||
%tmp57 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum ; <ptr> [#uses=1]
|
||||
store i8 %tmp55, ptr %tmp57
|
||||
%indvar.next = add i32 %i.073.0, 1 ; <i32> [#uses=2]
|
||||
icmp eq i32 %indvar.next, %size ; <i1>:1 [#uses=1]
|
||||
br i1 %1, label %return, label %bb
|
||||
|
|
|
@ -4,23 +4,23 @@
|
|||
|
||||
define i32 @foo(i32 %A, i32 %B) {
|
||||
entry:
|
||||
%A_addr = alloca i32 ; <i32*> [#uses=2]
|
||||
%B_addr = alloca i32 ; <i32*> [#uses=1]
|
||||
%retval = alloca i32, align 4 ; <i32*> [#uses=2]
|
||||
%tmp = alloca i32, align 4 ; <i32*> [#uses=2]
|
||||
%ret = alloca i32, align 4 ; <i32*> [#uses=2]
|
||||
store i32 %A, i32* %A_addr
|
||||
store i32 %B, i32* %B_addr
|
||||
%tmp1 = load i32, i32* %A_addr ; <i32> [#uses=1]
|
||||
%A_addr = alloca i32 ; <ptr> [#uses=2]
|
||||
%B_addr = alloca i32 ; <ptr> [#uses=1]
|
||||
%retval = alloca i32, align 4 ; <ptr> [#uses=2]
|
||||
%tmp = alloca i32, align 4 ; <ptr> [#uses=2]
|
||||
%ret = alloca i32, align 4 ; <ptr> [#uses=2]
|
||||
store i32 %A, ptr %A_addr
|
||||
store i32 %B, ptr %B_addr
|
||||
%tmp1 = load i32, ptr %A_addr ; <i32> [#uses=1]
|
||||
%tmp2 = call i32 asm "roll $1,$0", "=r,I,0,~{dirflag},~{fpsr},~{flags},~{cc}"( i32 7, i32 %tmp1 ) ; <i32> [#uses=1]
|
||||
store i32 %tmp2, i32* %ret
|
||||
%tmp3 = load i32, i32* %ret ; <i32> [#uses=1]
|
||||
store i32 %tmp3, i32* %tmp
|
||||
%tmp4 = load i32, i32* %tmp ; <i32> [#uses=1]
|
||||
store i32 %tmp4, i32* %retval
|
||||
store i32 %tmp2, ptr %ret
|
||||
%tmp3 = load i32, ptr %ret ; <i32> [#uses=1]
|
||||
store i32 %tmp3, ptr %tmp
|
||||
%tmp4 = load i32, ptr %tmp ; <i32> [#uses=1]
|
||||
store i32 %tmp4, ptr %retval
|
||||
br label %return
|
||||
|
||||
return: ; preds = %entry
|
||||
%retval5 = load i32, i32* %retval ; <i32> [#uses=1]
|
||||
%retval5 = load i32, ptr %retval ; <i32> [#uses=1]
|
||||
ret i32 %retval5
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ define void @test() {
|
|||
; CHECK-NEXT: mov %gs:72, %eax
|
||||
; CHECK-NEXT: ## InlineAsm End
|
||||
; CHECK-NEXT: retl
|
||||
%tmp1 = tail call i32* asm sideeffect "mov %gs:${1:P}, $0", "=r,i,~{dirflag},~{fpsr},~{flags}"( i32 72 ) ; <%struct._pthread*> [#uses=1]
|
||||
%tmp1 = tail call ptr asm sideeffect "mov %gs:${1:P}, $0", "=r,i,~{dirflag},~{fpsr},~{flags}"( i32 72 ) ; <ptr> [#uses=1]
|
||||
ret void
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
define void @foo(...) {
|
||||
bb1:
|
||||
%t43 = load i64, i64* getelementptr ([339 x i64], [339 x i64]* @data, i32 0, i64 212), align 4
|
||||
%t43 = load i64, ptr getelementptr ([339 x i64], ptr @data, i32 0, i64 212), align 4
|
||||
br i1 false, label %bb80, label %bb6
|
||||
bb6:
|
||||
br i1 false, label %bb38, label %bb265
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
%struct.CycleCount = type { i64, i64 }
|
||||
%struct.bc_struct = type { i32, i32, i32, i32, %struct.bc_struct*, i8*, i8* }
|
||||
@_programStartTime = external global %struct.CycleCount ; <%struct.CycleCount*> [#uses=1]
|
||||
%struct.bc_struct = type { i32, i32, i32, i32, ptr, ptr, ptr }
|
||||
@_programStartTime = external global %struct.CycleCount ; <ptr> [#uses=1]
|
||||
|
||||
define fastcc i32 @bc_divide(%struct.bc_struct* %n1, %struct.bc_struct* %n2, %struct.bc_struct** %quot, i32 %scale) nounwind {
|
||||
define fastcc i32 @bc_divide(ptr %n1, ptr %n2, ptr %quot, i32 %scale) nounwind {
|
||||
entry:
|
||||
%tmp7.i46 = tail call i64 asm sideeffect ".byte 0x0f,0x31", "={dx},=*{ax},~{dirflag},~{fpsr},~{flags}"(i64* elementtype(i64) getelementptr (%struct.CycleCount, %struct.CycleCount* @_programStartTime, i32 0, i32 1) ) ; <i64> [#uses=0]
|
||||
%tmp7.i46 = tail call i64 asm sideeffect ".byte 0x0f,0x31", "={dx},=*{ax},~{dirflag},~{fpsr},~{flags}"(ptr elementtype(i64) getelementptr (%struct.CycleCount, ptr @_programStartTime, i32 0, i32 1) ) ; <i64> [#uses=0]
|
||||
%tmp221 = sdiv i32 10, 0 ; <i32> [#uses=1]
|
||||
tail call fastcc void @_one_mult( i8* null, i32 0, i32 %tmp221, i8* null )
|
||||
tail call fastcc void @_one_mult( ptr null, i32 0, i32 %tmp221, ptr null )
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
declare fastcc void @_one_mult(i8*, i32, i32, i8*)
|
||||
declare fastcc void @_one_mult(ptr, i32, i32, ptr)
|
||||
|
|
|
@ -3,7 +3,7 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3
|
|||
target triple = "i686-apple-darwin8"
|
||||
|
||||
define void @test(<4 x float> %tmp42i) {
|
||||
%tmp42 = call <4 x float> asm "movss $1, $0", "=x,m,~{dirflag},~{fpsr},~{flags}"( float* null ) ; <<4 x float>> [#uses=1]
|
||||
%tmp42 = call <4 x float> asm "movss $1, $0", "=x,m,~{dirflag},~{fpsr},~{flags}"( ptr null ) ; <<4 x float>> [#uses=1]
|
||||
%tmp49 = shufflevector <4 x float> %tmp42, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1]
|
||||
br label %bb
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
; RUN: llc < %s -mtriple=i686-apple-darwin -relocation-model=pic --frame-pointer=all
|
||||
|
||||
%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
|
||||
%struct.FILE = type { ptr, i32, i32, i16, i16, %struct.__sbuf, i32, ptr, ptr, ptr, ptr, ptr, %struct.__sbuf, ptr, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
|
||||
%struct.__sFILEX = type opaque
|
||||
%struct.__sbuf = type { i8*, i32 }
|
||||
%struct.__sbuf = type { ptr, i32 }
|
||||
%struct.partition_def = type { i32, [1 x %struct.partition_elem] }
|
||||
%struct.partition_elem = type { i32, %struct.partition_elem*, i32 }
|
||||
%struct.partition_elem = type { i32, ptr, i32 }
|
||||
|
||||
define void @partition_print(%struct.partition_def* %part) {
|
||||
define void @partition_print(ptr %part) {
|
||||
entry:
|
||||
br i1 false, label %bb.preheader, label %bb99
|
||||
|
||||
|
@ -19,9 +19,9 @@ cond_true: ; preds = %bb.preheader
|
|||
bb32: ; preds = %bb32, %cond_true
|
||||
%i.2115.0 = phi i32 [ 0, %cond_true ], [ %indvar.next127, %bb32 ] ; <i32> [#uses=1]
|
||||
%c.2112.0 = phi i32 [ 0, %cond_true ], [ %tmp49, %bb32 ] ; <i32> [#uses=1]
|
||||
%tmp43 = getelementptr %struct.partition_def, %struct.partition_def* %part, i32 0, i32 1, i32 %c.2112.0, i32 1 ; <%struct.partition_elem**> [#uses=1]
|
||||
%tmp44 = load %struct.partition_elem*, %struct.partition_elem** %tmp43 ; <%struct.partition_elem*> [#uses=1]
|
||||
%tmp4445 = ptrtoint %struct.partition_elem* %tmp44 to i32 ; <i32> [#uses=1]
|
||||
%tmp43 = getelementptr %struct.partition_def, ptr %part, i32 0, i32 1, i32 %c.2112.0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp44 = load ptr, ptr %tmp43 ; <ptr> [#uses=1]
|
||||
%tmp4445 = ptrtoint ptr %tmp44 to i32 ; <i32> [#uses=1]
|
||||
%tmp48 = sub i32 %tmp4445, 0 ; <i32> [#uses=1]
|
||||
%tmp49 = sdiv i32 %tmp48, 12 ; <i32> [#uses=1]
|
||||
%indvar.next127 = add i32 %i.2115.0, 1 ; <i32> [#uses=2]
|
||||
|
|
|
@ -5,17 +5,17 @@
|
|||
|
||||
%struct.md5_ctx = type { i32, i32, i32, i32, [2 x i32], i32, [128 x i8], [4294967288 x i8] }
|
||||
|
||||
define i8* @md5_buffer(i8* %buffer, i64 %len, i8* %resblock) {
|
||||
define ptr @md5_buffer(ptr %buffer, i64 %len, ptr %resblock) {
|
||||
entry:
|
||||
%ctx = alloca %struct.md5_ctx, align 16 ; <%struct.md5_ctx*> [#uses=3]
|
||||
call void @md5_init_ctx( %struct.md5_ctx* %ctx )
|
||||
call void @md5_process_bytes( i8* %buffer, i64 %len, %struct.md5_ctx* %ctx )
|
||||
%tmp4 = call i8* @md5_finish_ctx( %struct.md5_ctx* %ctx, i8* %resblock ) ; <i8*> [#uses=1]
|
||||
ret i8* %tmp4
|
||||
%ctx = alloca %struct.md5_ctx, align 16 ; <ptr> [#uses=3]
|
||||
call void @md5_init_ctx( ptr %ctx )
|
||||
call void @md5_process_bytes( ptr %buffer, i64 %len, ptr %ctx )
|
||||
%tmp4 = call ptr @md5_finish_ctx( ptr %ctx, ptr %resblock ) ; <ptr> [#uses=1]
|
||||
ret ptr %tmp4
|
||||
}
|
||||
|
||||
declare void @md5_init_ctx(%struct.md5_ctx*)
|
||||
declare void @md5_init_ctx(ptr)
|
||||
|
||||
declare i8* @md5_finish_ctx(%struct.md5_ctx*, i8*)
|
||||
declare ptr @md5_finish_ctx(ptr, ptr)
|
||||
|
||||
declare void @md5_process_bytes(i8*, i64, %struct.md5_ctx*)
|
||||
declare void @md5_process_bytes(ptr, i64, ptr)
|
||||
|
|
|
@ -4,7 +4,7 @@ target triple = "i686-apple-darwin8"
|
|||
|
||||
declare <4 x float> @llvm.x86.sse.add.ss(<4 x float>, <4 x float>)
|
||||
|
||||
define void @test(float* %P) {
|
||||
define void @test(ptr %P) {
|
||||
entry:
|
||||
or <4 x i32> zeroinitializer, and (<4 x i32> bitcast (<4 x float> shufflevector (<4 x float> undef, <4 x float> undef, <4 x i32> zeroinitializer) to <4 x i32>), <4 x i32> < i32 -2147483648, i32 -2147483648, i32 -2147483648, i32 -2147483648 >) ; <<4 x i32>>:0 [#uses=1]
|
||||
bitcast <4 x i32> %0 to <4 x float> ; <<4 x float>>:1 [#uses=1]
|
||||
|
@ -58,6 +58,6 @@ entry:
|
|||
shufflevector <4 x float> %48, <4 x float> undef, <4 x i32> < i32 1, i32 1, i32 1, i32 1 > ; <<4 x float>>:49 [#uses=1]
|
||||
fadd <4 x float> %49, zeroinitializer ; <<4 x float>>:50 [#uses=1]
|
||||
%tmp5845 = extractelement <4 x float> %50, i32 2 ; <float> [#uses=1]
|
||||
store float %tmp5845, float* %P
|
||||
store float %tmp5845, ptr %P
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -12,16 +12,16 @@
|
|||
|
||||
@error = external global i8
|
||||
|
||||
define void @_ada_x() personality i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*) {
|
||||
define void @_ada_x() personality ptr @__gnat_eh_personality {
|
||||
entry:
|
||||
invoke void @raise()
|
||||
to label %eh_then unwind label %unwind
|
||||
|
||||
unwind: ; preds = %entry
|
||||
%eh_ptr = landingpad { i8*, i32 }
|
||||
catch i8* @error
|
||||
%eh_select = extractvalue { i8*, i32 } %eh_ptr, 1
|
||||
%eh_typeid = tail call i32 @llvm.eh.typeid.for(i8* @error)
|
||||
%eh_ptr = landingpad { ptr, i32 }
|
||||
catch ptr @error
|
||||
%eh_select = extractvalue { ptr, i32 } %eh_ptr, 1
|
||||
%eh_typeid = tail call i32 @llvm.eh.typeid.for(ptr @error)
|
||||
%tmp2 = icmp eq i32 %eh_select, %eh_typeid
|
||||
br i1 %tmp2, label %eh_then, label %Unwind
|
||||
|
||||
|
@ -29,12 +29,12 @@ eh_then: ; preds = %unwind, %entry
|
|||
ret void
|
||||
|
||||
Unwind: ; preds = %unwind
|
||||
resume { i8*, i32 } %eh_ptr
|
||||
resume { ptr, i32 } %eh_ptr
|
||||
}
|
||||
|
||||
declare void @raise()
|
||||
|
||||
declare i32 @llvm.eh.typeid.for(i8*) nounwind
|
||||
declare i32 @llvm.eh.typeid.for(ptr) nounwind
|
||||
|
||||
declare i32 @__gnat_eh_personality(...)
|
||||
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
; RUN: llc < %s -mtriple=i686-- -mcpu=i386 -mattr=+sse
|
||||
; PR1371
|
||||
|
||||
@str = external dso_local global [18 x i8] ; <[18 x i8]*> [#uses=1]
|
||||
@str = external dso_local global [18 x i8] ; <ptr> [#uses=1]
|
||||
|
||||
define void @test() {
|
||||
bb.i:
|
||||
%tmp.i660 = load <4 x float>, <4 x float>* null ; <<4 x float>> [#uses=1]
|
||||
call void (i32, ...) @printf( i32 0, i8* getelementptr ([18 x i8], [18 x i8]* @str, i32 0, i64 0), double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00 )
|
||||
%tmp152.i = load <4 x i32>, <4 x i32>* null ; <<4 x i32>> [#uses=1]
|
||||
%tmp.i660 = load <4 x float>, ptr null ; <<4 x float>> [#uses=1]
|
||||
call void (i32, ...) @printf( i32 0, ptr @str, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00 )
|
||||
%tmp152.i = load <4 x i32>, ptr null ; <<4 x i32>> [#uses=1]
|
||||
%tmp156.i = bitcast <4 x i32> %tmp152.i to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp175.i = bitcast <4 x float> %tmp.i660 to <4 x i32> ; <<4 x i32>> [#uses=1]
|
||||
%tmp176.i = xor <4 x i32> %tmp156.i, < i32 -1, i32 -1, i32 -1, i32 -1 > ; <<4 x i32>> [#uses=1]
|
||||
%tmp177.i = and <4 x i32> %tmp176.i, %tmp175.i ; <<4 x i32>> [#uses=1]
|
||||
%tmp190.i = or <4 x i32> %tmp177.i, zeroinitializer ; <<4 x i32>> [#uses=1]
|
||||
%tmp191.i = bitcast <4 x i32> %tmp190.i to <4 x float> ; <<4 x float>> [#uses=1]
|
||||
store <4 x float> %tmp191.i, <4 x float>* null
|
||||
store <4 x float> %tmp191.i, ptr null
|
||||
ret void
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
; RUN: llc < %s -mtriple=x86_64--
|
||||
|
||||
%struct.XDesc = type <{ i32, %struct.OpaqueXDataStorageType** }>
|
||||
%struct.XDesc = type <{ i32, ptr }>
|
||||
%struct.OpaqueXDataStorageType = type opaque
|
||||
|
||||
declare signext i16 @GetParamDesc(%struct.XDesc*, i32, i32, %struct.XDesc*)
|
||||
declare signext i16 @GetParamDesc(ptr, i32, i32, ptr)
|
||||
|
||||
declare void @r_raise(i64, i8*, ...)
|
||||
declare void @r_raise(i64, ptr, ...)
|
||||
|
||||
define i64 @app_send_event(i64 %self, i64 %event_class, i64 %event_id, i64 %params, i64 %need_retval) {
|
||||
entry:
|
||||
|
@ -18,8 +18,8 @@ cond_true109: ; preds = %entry
|
|||
br i1 false, label %cond_next164, label %cond_true239
|
||||
|
||||
cond_next164: ; preds = %cond_true109
|
||||
%tmp176 = call signext i16 @GetParamDesc( %struct.XDesc* null, i32 1701999219, i32 1413830740, %struct.XDesc* null )
|
||||
call void (i64, i8*, ...) @r_raise( i64 0, i8* null )
|
||||
%tmp176 = call signext i16 @GetParamDesc( ptr null, i32 1701999219, i32 1413830740, ptr null )
|
||||
call void (i64, ptr, ...) @r_raise( i64 0, ptr null )
|
||||
unreachable
|
||||
|
||||
cond_true239: ; preds = %cond_true109
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-apple-darwin8 -mcpu=yonah | FileCheck %s
|
||||
|
||||
define void @test(<1 x i64> %c64, <1 x i64> %mask1, i8* %P) {
|
||||
define void @test(<1 x i64> %c64, <1 x i64> %mask1, ptr %P) {
|
||||
; CHECK-LABEL: test:
|
||||
; CHECK: ## %bb.0: ## %entry
|
||||
; CHECK-NEXT: pushl %edi
|
||||
|
@ -27,8 +27,8 @@ define void @test(<1 x i64> %c64, <1 x i64> %mask1, i8* %P) {
|
|||
entry:
|
||||
%tmp4 = bitcast <1 x i64> %mask1 to x86_mmx ; <x86_mmx> [#uses=1]
|
||||
%tmp6 = bitcast <1 x i64> %c64 to x86_mmx ; <x86_mmx> [#uses=1]
|
||||
tail call void @llvm.x86.mmx.maskmovq( x86_mmx %tmp4, x86_mmx %tmp6, i8* %P )
|
||||
tail call void @llvm.x86.mmx.maskmovq( x86_mmx %tmp4, x86_mmx %tmp6, ptr %P )
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @llvm.x86.mmx.maskmovq(x86_mmx, x86_mmx, i8*)
|
||||
declare void @llvm.x86.mmx.maskmovq(x86_mmx, x86_mmx, ptr)
|
||||
|
|
|
@ -6,7 +6,7 @@ declare <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16>, <8 x i16>)
|
|||
|
||||
declare <8 x i16> @llvm.x86.sse2.psrl.w(<8 x i16>, <8 x i16>)
|
||||
|
||||
define fastcc void @test(i32* %src, i32 %sbpr, i32* %dst, i32 %dbpr, i32 %w, i32 %h, i32 %dstalpha, i32 %mask) {
|
||||
define fastcc void @test(ptr %src, i32 %sbpr, ptr %dst, i32 %dbpr, i32 %w, i32 %h, i32 %dstalpha, i32 %mask) {
|
||||
%tmp633 = shufflevector <8 x i16> zeroinitializer, <8 x i16> undef, <8 x i32> < i32 4, i32 4, i32 5, i32 5, i32 6, i32 6, i32 7, i32 7 >
|
||||
%tmp715 = mul <8 x i16> zeroinitializer, %tmp633
|
||||
%tmp776 = bitcast <8 x i16> %tmp715 to <4 x i32>
|
||||
|
@ -19,6 +19,6 @@ define fastcc void @test(i32* %src, i32 %sbpr, i32* %dst, i32 %dbpr, i32 %w, i32
|
|||
%tmp1033 = add <4 x i32> zeroinitializer, %tmp1030
|
||||
%tmp1048 = bitcast <4 x i32> %tmp1033 to <2 x i64>
|
||||
%tmp1049 = or <2 x i64> %tmp1048, zeroinitializer
|
||||
store <2 x i64> %tmp1049, <2 x i64>* null
|
||||
store <2 x i64> %tmp1049, ptr null
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep ".align.*3"
|
||||
|
||||
%struct.A = type { [1024 x i8] }
|
||||
@_ZN1A1aE = global %struct.A zeroinitializer, align 32 ; <%struct.A*> [#uses=1]
|
||||
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN1A1aE, i8* null } ] ; <[1 x { i32, void ()*, i8* null }]*> [#uses=0]
|
||||
@_ZN1A1aE = global %struct.A zeroinitializer, align 32 ; <ptr> [#uses=1]
|
||||
@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [ { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN1A1aE, ptr null } ] ; <ptr> [#uses=0]
|
||||
|
||||
define internal void @_GLOBAL__I__ZN1A1aE() section "__TEXT,__StaticInit,regular,pure_instructions" {
|
||||
entry:
|
||||
|
@ -12,8 +12,8 @@ entry:
|
|||
bb.i: ; preds = %bb.i, %entry
|
||||
%i.1.i1.0 = phi i32 [ 0, %entry ], [ %indvar.next, %bb.i ] ; <i32> [#uses=2]
|
||||
%tmp1012.i = sext i32 %i.1.i1.0 to i64 ; <i64> [#uses=1]
|
||||
%tmp13.i = getelementptr %struct.A, %struct.A* @_ZN1A1aE, i32 0, i32 0, i64 %tmp1012.i ; <i8*> [#uses=1]
|
||||
store i8 0, i8* %tmp13.i
|
||||
%tmp13.i = getelementptr %struct.A, ptr @_ZN1A1aE, i32 0, i32 0, i64 %tmp1012.i ; <ptr> [#uses=1]
|
||||
store i8 0, ptr %tmp13.i
|
||||
%indvar.next = add i32 %i.1.i1.0, 1 ; <i32> [#uses=2]
|
||||
%exitcond = icmp eq i32 %indvar.next, 1024 ; <i1> [#uses=1]
|
||||
br i1 %exitcond, label %_Z41__static_initialization_and_destruction_0ii.exit, label %bb.i
|
||||
|
@ -22,7 +22,7 @@ _Z41__static_initialization_and_destruction_0ii.exit: ; preds = %bb.i
|
|||
ret void
|
||||
}
|
||||
|
||||
define i32 @main(i32 %argc, i8** %argv) {
|
||||
define i32 @main(i32 %argc, ptr %argv) {
|
||||
entry:
|
||||
ret i32 0
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
; RUN: llc < %s -mtriple=i686-- -mattr=+sse2
|
||||
|
||||
define void @test(<4 x float>* %arg) {
|
||||
%tmp89 = getelementptr <4 x float>, <4 x float>* %arg, i64 3
|
||||
define void @test(ptr %arg) {
|
||||
%tmp89 = getelementptr <4 x float>, ptr %arg, i64 3
|
||||
%tmp1144 = fsub <4 x float> < float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00 >, zeroinitializer
|
||||
store <4 x float> %tmp1144, <4 x float>* null
|
||||
%tmp1149 = load <4 x float>, <4 x float>* %tmp89
|
||||
store <4 x float> %tmp1144, ptr null
|
||||
%tmp1149 = load <4 x float>, ptr %tmp89
|
||||
%tmp1150 = fsub <4 x float> < float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00 >, %tmp1149
|
||||
store <4 x float> %tmp1150, <4 x float>* %tmp89
|
||||
store <4 x float> %tmp1150, ptr %tmp89
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx | FileCheck %s
|
||||
|
||||
@R = external global x86_mmx ; <x86_mmx*> [#uses=1]
|
||||
@R = external global x86_mmx ; <ptr> [#uses=1]
|
||||
|
||||
define void @foo(<1 x i64> %A, <1 x i64> %B) nounwind {
|
||||
; CHECK-LABEL: foo:
|
||||
|
@ -17,7 +17,7 @@ entry:
|
|||
%tmp4 = bitcast <1 x i64> %B to x86_mmx ; <<4 x i16>> [#uses=1]
|
||||
%tmp6 = bitcast <1 x i64> %A to x86_mmx ; <<4 x i16>> [#uses=1]
|
||||
%tmp7 = tail call x86_mmx @llvm.x86.mmx.paddus.w( x86_mmx %tmp6, x86_mmx %tmp4 ) ; <x86_mmx> [#uses=1]
|
||||
store x86_mmx %tmp7, x86_mmx* @R
|
||||
store x86_mmx %tmp7, ptr @R
|
||||
tail call void @llvm.x86.mmx.emms( )
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
; RUN: llc < %s -mtriple=i686-pc-linux-gnu -mcpu=athlon -relocation-model=pic
|
||||
; PR1545
|
||||
|
||||
@.str97 = external constant [56 x i8] ; <[56 x i8]*> [#uses=1]
|
||||
@.str97 = external constant [56 x i8] ; <ptr> [#uses=1]
|
||||
|
||||
declare void @PR_LogPrint(i8*, ...)
|
||||
declare void @PR_LogPrint(ptr, ...)
|
||||
|
||||
define i32 @_ZN13nsPrintEngine19SetupToPrintContentEP16nsIDeviceContextP12nsIDOMWindow() {
|
||||
entry:
|
||||
|
@ -22,15 +22,15 @@ cond_true354: ; preds = %bb164
|
|||
ret i32 0
|
||||
|
||||
bb383: ; preds = %bb164
|
||||
%tmp408 = load float, float* null ; <float> [#uses=2]
|
||||
%tmp408 = load float, ptr null ; <float> [#uses=2]
|
||||
br i1 false, label %cond_true425, label %cond_next443
|
||||
|
||||
cond_true425: ; preds = %bb383
|
||||
%tmp430 = load float, float* null ; <float> [#uses=1]
|
||||
%tmp430 = load float, ptr null ; <float> [#uses=1]
|
||||
%tmp432 = fsub float %tmp430, %tmp408 ; <float> [#uses=1]
|
||||
%tmp432433 = fpext float %tmp432 to double ; <double> [#uses=1]
|
||||
%tmp434435 = fpext float %tmp408 to double ; <double> [#uses=1]
|
||||
call void (i8*, ...) @PR_LogPrint( i8* getelementptr ([56 x i8], [56 x i8]* @.str97, i32 0, i32 0), double 0.000000e+00, double %tmp434435, double %tmp432433 )
|
||||
call void (ptr, ...) @PR_LogPrint( ptr @.str97, double 0.000000e+00, double %tmp434435, double %tmp432433 )
|
||||
ret i32 0
|
||||
|
||||
cond_next443: ; preds = %bb383
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
; RUN: llc < %s -mtriple=x86_64-win32 -mattr=+sse | FileCheck %s
|
||||
; CHECK: movq ([[A0:%rdi|%rcx]]), %rax
|
||||
; CHECK: movq 8([[A0]]), %rax
|
||||
define i64 @foo_0(<2 x i64>* %val) {
|
||||
define i64 @foo_0(ptr %val) {
|
||||
entry:
|
||||
%val12 = getelementptr <2 x i64>, <2 x i64>* %val, i32 0, i32 0 ; <i64*> [#uses=1]
|
||||
%tmp7 = load i64, i64* %val12 ; <i64> [#uses=1]
|
||||
%val12 = getelementptr <2 x i64>, ptr %val, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp7 = load i64, ptr %val12 ; <i64> [#uses=1]
|
||||
ret i64 %tmp7
|
||||
}
|
||||
|
||||
define i64 @foo_1(<2 x i64>* %val) {
|
||||
define i64 @foo_1(ptr %val) {
|
||||
entry:
|
||||
%tmp2.gep = getelementptr <2 x i64>, <2 x i64>* %val, i32 0, i32 1 ; <i64*> [#uses=1]
|
||||
%tmp4 = load i64, i64* %tmp2.gep ; <i64> [#uses=1]
|
||||
%tmp2.gep = getelementptr <2 x i64>, ptr %val, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp4 = load i64, ptr %tmp2.gep ; <i64> [#uses=1]
|
||||
ret i64 %tmp4
|
||||
}
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
|
||||
|
||||
%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, [4 x i8], i64 }
|
||||
%struct.PyBoolScalarObject = type { i64, %struct._typeobject*, i8 }
|
||||
%struct.PyBufferProcs = type { i64 (%struct.PyObject*, i64, i8**)*, i64 (%struct.PyObject*, i64, i8**)*, i64 (%struct.PyObject*, i64*)*, i64 (%struct.PyObject*, i64, i8**)* }
|
||||
%struct.PyGetSetDef = type { i8*, %struct.PyObject* (%struct.PyObject*, i8*)*, i32 (%struct.PyObject*, %struct.PyObject*, i8*)*, i8*, i8* }
|
||||
%struct.PyMappingMethods = type { i64 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)* }
|
||||
%struct.FILE = type { ptr, i32, i32, i16, i16, %struct.__sbuf, i32, ptr, ptr, ptr, ptr, ptr, %struct.__sbuf, ptr, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, [4 x i8], i64 }
|
||||
%struct.PyBoolScalarObject = type { i64, ptr, i8 }
|
||||
%struct.PyBufferProcs = type { ptr, ptr, ptr, ptr }
|
||||
%struct.PyGetSetDef = type { ptr, ptr, ptr, ptr, ptr }
|
||||
%struct.PyMappingMethods = type { ptr, ptr, ptr }
|
||||
%struct.PyMemberDef = type opaque
|
||||
%struct.PyMethodDef = type { i8*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, i32, i8* }
|
||||
%struct.PyNumberMethods = type { %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, i32 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, i32 (%struct.PyObject**, %struct.PyObject**)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)* }
|
||||
%struct.PyObject = type { i64, %struct._typeobject* }
|
||||
%struct.PySequenceMethods = type { i64 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, i64)*, %struct.PyObject* (%struct.PyObject*, i64)*, %struct.PyObject* (%struct.PyObject*, i64, i64)*, i32 (%struct.PyObject*, i64, %struct.PyObject*)*, i32 (%struct.PyObject*, i64, i64, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, i64)* }
|
||||
%struct.PyTupleObject = type { i64, %struct._typeobject*, i64, [1 x %struct.PyObject*] }
|
||||
%struct.PyMethodDef = type { ptr, ptr, i32, ptr }
|
||||
%struct.PyNumberMethods = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
|
||||
%struct.PyObject = type { i64, ptr }
|
||||
%struct.PySequenceMethods = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
|
||||
%struct.PyTupleObject = type { i64, ptr, i64, [1 x ptr] }
|
||||
%struct.__sFILEX = type opaque
|
||||
%struct.__sbuf = type { i8*, i32 }
|
||||
%struct._typeobject = type { i64, %struct._typeobject*, i64, i8*, i64, i64, void (%struct.PyObject*)*, i32 (%struct.PyObject*, %struct.FILE*, i32)*, %struct.PyObject* (%struct.PyObject*, i8*)*, i32 (%struct.PyObject*, i8*, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyNumberMethods*, %struct.PySequenceMethods*, %struct.PyMappingMethods*, i64 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyBufferProcs*, i64, i8*, i32 (%struct.PyObject*, i32 (%struct.PyObject*, i8*)*, i8*)*, i32 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, i32)*, i64, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyMethodDef*, %struct.PyMemberDef*, %struct.PyGetSetDef*, %struct._typeobject*, %struct.PyObject*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, i64, i32 (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct._typeobject*, i64)*, %struct.PyObject* (%struct._typeobject*, %struct.PyObject*, %struct.PyObject*)*, void (i8*)*, i32 (%struct.PyObject*)*, %struct.PyObject*, %struct.PyObject*, %struct.PyObject*, %struct.PyObject*, %struct.PyObject*, void (%struct.PyObject*)* }
|
||||
@PyArray_API = external global i8** ; <i8***> [#uses=4]
|
||||
@PyUFunc_API = external global i8** ; <i8***> [#uses=4]
|
||||
@.str5 = external constant [14 x i8] ; <[14 x i8]*> [#uses=1]
|
||||
%struct.__sbuf = type { ptr, i32 }
|
||||
%struct._typeobject = type { i64, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
|
||||
@PyArray_API = external global ptr ; <ptr> [#uses=4]
|
||||
@PyUFunc_API = external global ptr ; <ptr> [#uses=4]
|
||||
@.str5 = external constant [14 x i8] ; <ptr> [#uses=1]
|
||||
|
||||
define %struct.PyObject* @ubyte_divmod(%struct.PyObject* %a, %struct.PyObject* %b) {
|
||||
define ptr @ubyte_divmod(ptr %a, ptr %b) {
|
||||
; CHECK-LABEL: ubyte_divmod:
|
||||
; CHECK: ## %bb.0: ## %entry
|
||||
; CHECK-NEXT: pushq %rbp
|
||||
|
@ -190,18 +190,18 @@ define %struct.PyObject* @ubyte_divmod(%struct.PyObject* %a, %struct.PyObject* %
|
|||
; CHECK-NEXT: popq %rbp
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
%arg1 = alloca i8, align 1 ; <i8*> [#uses=3]
|
||||
%arg2 = alloca i8, align 1 ; <i8*> [#uses=3]
|
||||
%first = alloca i32, align 4 ; <i32*> [#uses=2]
|
||||
%bufsize = alloca i32, align 4 ; <i32*> [#uses=1]
|
||||
%errmask = alloca i32, align 4 ; <i32*> [#uses=2]
|
||||
%errobj = alloca %struct.PyObject*, align 8 ; <%struct.PyObject**> [#uses=2]
|
||||
%tmp3.i = call fastcc i32 @_ubyte_convert_to_ctype( %struct.PyObject* %a, i8* %arg1 ) ; <i32> [#uses=2]
|
||||
%arg1 = alloca i8, align 1 ; <ptr> [#uses=3]
|
||||
%arg2 = alloca i8, align 1 ; <ptr> [#uses=3]
|
||||
%first = alloca i32, align 4 ; <ptr> [#uses=2]
|
||||
%bufsize = alloca i32, align 4 ; <ptr> [#uses=1]
|
||||
%errmask = alloca i32, align 4 ; <ptr> [#uses=2]
|
||||
%errobj = alloca ptr, align 8 ; <ptr> [#uses=2]
|
||||
%tmp3.i = call fastcc i32 @_ubyte_convert_to_ctype( ptr %a, ptr %arg1 ) ; <i32> [#uses=2]
|
||||
%tmp5.i = icmp slt i32 %tmp3.i, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp5.i, label %_ubyte_convert2_to_ctypes.exit, label %cond_next.i
|
||||
|
||||
cond_next.i: ; preds = %entry
|
||||
%tmp11.i = call fastcc i32 @_ubyte_convert_to_ctype( %struct.PyObject* %b, i8* %arg2 ) ; <i32> [#uses=2]
|
||||
%tmp11.i = call fastcc i32 @_ubyte_convert_to_ctype( ptr %b, ptr %arg2 ) ; <i32> [#uses=2]
|
||||
%tmp13.i = icmp slt i32 %tmp11.i, 0 ; <i1> [#uses=1]
|
||||
%retval.i = select i1 %tmp13.i, i32 %tmp11.i, i32 0 ; <i32> [#uses=1]
|
||||
switch i32 %retval.i, label %bb35 [
|
||||
|
@ -216,55 +216,52 @@ _ubyte_convert2_to_ctypes.exit: ; preds = %entry
|
|||
]
|
||||
|
||||
bb4: ; preds = %_ubyte_convert2_to_ctypes.exit, %cond_next.i
|
||||
%tmp5 = load i8**, i8*** @PyArray_API, align 8 ; <i8**> [#uses=1]
|
||||
%tmp6 = getelementptr i8*, i8** %tmp5, i64 2 ; <i8**> [#uses=1]
|
||||
%tmp7 = load i8*, i8** %tmp6 ; <i8*> [#uses=1]
|
||||
%tmp78 = bitcast i8* %tmp7 to %struct._typeobject* ; <%struct._typeobject*> [#uses=1]
|
||||
%tmp9 = getelementptr %struct._typeobject, %struct._typeobject* %tmp78, i32 0, i32 12 ; <%struct.PyNumberMethods**> [#uses=1]
|
||||
%tmp10 = load %struct.PyNumberMethods*, %struct.PyNumberMethods** %tmp9 ; <%struct.PyNumberMethods*> [#uses=1]
|
||||
%tmp11 = getelementptr %struct.PyNumberMethods, %struct.PyNumberMethods* %tmp10, i32 0, i32 5 ; <%struct.PyObject* (%struct.PyObject*, %struct.PyObject*)**> [#uses=1]
|
||||
%tmp12 = load %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)** %tmp11 ; <%struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*> [#uses=1]
|
||||
%tmp15 = call %struct.PyObject* %tmp12( %struct.PyObject* %a, %struct.PyObject* %b ) ; <%struct.PyObject*> [#uses=1]
|
||||
ret %struct.PyObject* %tmp15
|
||||
%tmp5 = load ptr, ptr @PyArray_API, align 8 ; <ptr> [#uses=1]
|
||||
%tmp6 = getelementptr ptr, ptr %tmp5, i64 2 ; <ptr> [#uses=1]
|
||||
%tmp7 = load ptr, ptr %tmp6 ; <ptr> [#uses=1]
|
||||
%tmp9 = getelementptr %struct._typeobject, ptr %tmp7, i32 0, i32 12 ; <ptr> [#uses=1]
|
||||
%tmp10 = load ptr, ptr %tmp9 ; <ptr> [#uses=1]
|
||||
%tmp11 = getelementptr %struct.PyNumberMethods, ptr %tmp10, i32 0, i32 5 ; <ptr> [#uses=1]
|
||||
%tmp12 = load ptr, ptr %tmp11 ; <ptr> [#uses=1]
|
||||
%tmp15 = call ptr %tmp12( ptr %a, ptr %b ) ; <ptr> [#uses=1]
|
||||
ret ptr %tmp15
|
||||
|
||||
bb17: ; preds = %_ubyte_convert2_to_ctypes.exit, %cond_next.i
|
||||
%tmp18 = call %struct.PyObject* @PyErr_Occurred( ) ; <%struct.PyObject*> [#uses=1]
|
||||
%tmp19 = icmp eq %struct.PyObject* %tmp18, null ; <i1> [#uses=1]
|
||||
%tmp18 = call ptr @PyErr_Occurred( ) ; <ptr> [#uses=1]
|
||||
%tmp19 = icmp eq ptr %tmp18, null ; <i1> [#uses=1]
|
||||
br i1 %tmp19, label %cond_next, label %UnifiedReturnBlock
|
||||
|
||||
cond_next: ; preds = %bb17
|
||||
%tmp22 = load i8**, i8*** @PyArray_API, align 8 ; <i8**> [#uses=1]
|
||||
%tmp23 = getelementptr i8*, i8** %tmp22, i64 10 ; <i8**> [#uses=1]
|
||||
%tmp24 = load i8*, i8** %tmp23 ; <i8*> [#uses=1]
|
||||
%tmp2425 = bitcast i8* %tmp24 to %struct._typeobject* ; <%struct._typeobject*> [#uses=1]
|
||||
%tmp26 = getelementptr %struct._typeobject, %struct._typeobject* %tmp2425, i32 0, i32 12 ; <%struct.PyNumberMethods**> [#uses=1]
|
||||
%tmp27 = load %struct.PyNumberMethods*, %struct.PyNumberMethods** %tmp26 ; <%struct.PyNumberMethods*> [#uses=1]
|
||||
%tmp28 = getelementptr %struct.PyNumberMethods, %struct.PyNumberMethods* %tmp27, i32 0, i32 5 ; <%struct.PyObject* (%struct.PyObject*, %struct.PyObject*)**> [#uses=1]
|
||||
%tmp29 = load %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)** %tmp28 ; <%struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*> [#uses=1]
|
||||
%tmp32 = call %struct.PyObject* %tmp29( %struct.PyObject* %a, %struct.PyObject* %b ) ; <%struct.PyObject*> [#uses=1]
|
||||
ret %struct.PyObject* %tmp32
|
||||
%tmp22 = load ptr, ptr @PyArray_API, align 8 ; <ptr> [#uses=1]
|
||||
%tmp23 = getelementptr ptr, ptr %tmp22, i64 10 ; <ptr> [#uses=1]
|
||||
%tmp24 = load ptr, ptr %tmp23 ; <ptr> [#uses=1]
|
||||
%tmp26 = getelementptr %struct._typeobject, ptr %tmp24, i32 0, i32 12 ; <ptr> [#uses=1]
|
||||
%tmp27 = load ptr, ptr %tmp26 ; <ptr> [#uses=1]
|
||||
%tmp28 = getelementptr %struct.PyNumberMethods, ptr %tmp27, i32 0, i32 5 ; <ptr> [#uses=1]
|
||||
%tmp29 = load ptr, ptr %tmp28 ; <ptr> [#uses=1]
|
||||
%tmp32 = call ptr %tmp29( ptr %a, ptr %b ) ; <ptr> [#uses=1]
|
||||
ret ptr %tmp32
|
||||
|
||||
bb35: ; preds = %_ubyte_convert2_to_ctypes.exit, %cond_next.i
|
||||
%tmp36 = load i8**, i8*** @PyUFunc_API, align 8 ; <i8**> [#uses=1]
|
||||
%tmp37 = getelementptr i8*, i8** %tmp36, i64 27 ; <i8**> [#uses=1]
|
||||
%tmp38 = load i8*, i8** %tmp37 ; <i8*> [#uses=1]
|
||||
%tmp3839 = bitcast i8* %tmp38 to void ()* ; <void ()*> [#uses=1]
|
||||
call void %tmp3839( )
|
||||
%tmp40 = load i8, i8* %arg2, align 1 ; <i8> [#uses=4]
|
||||
%tmp36 = load ptr, ptr @PyUFunc_API, align 8 ; <ptr> [#uses=1]
|
||||
%tmp37 = getelementptr ptr, ptr %tmp36, i64 27 ; <ptr> [#uses=1]
|
||||
%tmp38 = load ptr, ptr %tmp37 ; <ptr> [#uses=1]
|
||||
call void %tmp38( )
|
||||
%tmp40 = load i8, ptr %arg2, align 1 ; <i8> [#uses=4]
|
||||
%tmp1.i = icmp eq i8 %tmp40, 0 ; <i1> [#uses=2]
|
||||
br i1 %tmp1.i, label %cond_true.i, label %cond_false.i
|
||||
|
||||
cond_true.i: ; preds = %bb35
|
||||
%tmp3.i196 = call i32 @feraiseexcept( i32 4 ) ; <i32> [#uses=0]
|
||||
%tmp46207 = load i8, i8* %arg2, align 1 ; <i8> [#uses=3]
|
||||
%tmp48208 = load i8, i8* %arg1, align 1 ; <i8> [#uses=2]
|
||||
%tmp46207 = load i8, ptr %arg2, align 1 ; <i8> [#uses=3]
|
||||
%tmp48208 = load i8, ptr %arg1, align 1 ; <i8> [#uses=2]
|
||||
%tmp1.i197210 = icmp eq i8 %tmp48208, 0 ; <i1> [#uses=1]
|
||||
%tmp4.i212 = icmp eq i8 %tmp46207, 0 ; <i1> [#uses=1]
|
||||
%tmp7.i198213 = or i1 %tmp1.i197210, %tmp4.i212 ; <i1> [#uses=1]
|
||||
br i1 %tmp7.i198213, label %cond_true.i200, label %cond_next17.i
|
||||
|
||||
cond_false.i: ; preds = %bb35
|
||||
%tmp42 = load i8, i8* %arg1, align 1 ; <i8> [#uses=3]
|
||||
%tmp42 = load i8, ptr %arg1, align 1 ; <i8> [#uses=3]
|
||||
%tmp7.i = udiv i8 %tmp42, %tmp40 ; <i8> [#uses=2]
|
||||
%tmp1.i197 = icmp eq i8 %tmp42, 0 ; <i1> [#uses=1]
|
||||
%tmp7.i198 = or i1 %tmp1.i197, %tmp1.i ; <i1> [#uses=1]
|
||||
|
@ -290,116 +287,108 @@ cond_next17.i: ; preds = %cond_false.i, %cond_true.i
|
|||
ubyte_ctype_remainder.exit: ; preds = %cond_next17.i, %cond_true14.i, %cond_true.i200
|
||||
%out2.0 = phi i8 [ %tmp20.i, %cond_next17.i ], [ 0, %cond_true14.i ], [ 0, %cond_true.i200 ] ; <i8> [#uses=1]
|
||||
%out.2 = phi i8 [ %out.1, %cond_next17.i ], [ %out.0, %cond_true14.i ], [ %out.0, %cond_true.i200 ] ; <i8> [#uses=1]
|
||||
%tmp52 = load i8**, i8*** @PyUFunc_API, align 8 ; <i8**> [#uses=1]
|
||||
%tmp53 = getelementptr i8*, i8** %tmp52, i64 28 ; <i8**> [#uses=1]
|
||||
%tmp54 = load i8*, i8** %tmp53 ; <i8*> [#uses=1]
|
||||
%tmp5455 = bitcast i8* %tmp54 to i32 ()* ; <i32 ()*> [#uses=1]
|
||||
%tmp56 = call i32 %tmp5455( ) ; <i32> [#uses=2]
|
||||
%tmp52 = load ptr, ptr @PyUFunc_API, align 8 ; <ptr> [#uses=1]
|
||||
%tmp53 = getelementptr ptr, ptr %tmp52, i64 28 ; <ptr> [#uses=1]
|
||||
%tmp54 = load ptr, ptr %tmp53 ; <ptr> [#uses=1]
|
||||
%tmp56 = call i32 %tmp54( ) ; <i32> [#uses=2]
|
||||
%tmp58 = icmp eq i32 %tmp56, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp58, label %cond_next89, label %cond_true61
|
||||
|
||||
cond_true61: ; preds = %ubyte_ctype_remainder.exit
|
||||
%tmp62 = load i8**, i8*** @PyUFunc_API, align 8 ; <i8**> [#uses=1]
|
||||
%tmp63 = getelementptr i8*, i8** %tmp62, i64 25 ; <i8**> [#uses=1]
|
||||
%tmp64 = load i8*, i8** %tmp63 ; <i8*> [#uses=1]
|
||||
%tmp6465 = bitcast i8* %tmp64 to i32 (i8*, i32*, i32*, %struct.PyObject**)* ; <i32 (i8*, i32*, i32*, %struct.PyObject**)*> [#uses=1]
|
||||
%tmp67 = call i32 %tmp6465( i8* getelementptr ([14 x i8], [14 x i8]* @.str5, i32 0, i64 0), i32* %bufsize, i32* %errmask, %struct.PyObject** %errobj ) ; <i32> [#uses=1]
|
||||
%tmp62 = load ptr, ptr @PyUFunc_API, align 8 ; <ptr> [#uses=1]
|
||||
%tmp63 = getelementptr ptr, ptr %tmp62, i64 25 ; <ptr> [#uses=1]
|
||||
%tmp64 = load ptr, ptr %tmp63 ; <ptr> [#uses=1]
|
||||
%tmp67 = call i32 %tmp64( ptr @.str5, ptr %bufsize, ptr %errmask, ptr %errobj ) ; <i32> [#uses=1]
|
||||
%tmp68 = icmp slt i32 %tmp67, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp68, label %UnifiedReturnBlock, label %cond_next73
|
||||
|
||||
cond_next73: ; preds = %cond_true61
|
||||
store i32 1, i32* %first, align 4
|
||||
%tmp74 = load i8**, i8*** @PyUFunc_API, align 8 ; <i8**> [#uses=1]
|
||||
%tmp75 = getelementptr i8*, i8** %tmp74, i64 29 ; <i8**> [#uses=1]
|
||||
%tmp76 = load i8*, i8** %tmp75 ; <i8*> [#uses=1]
|
||||
%tmp7677 = bitcast i8* %tmp76 to i32 (i32, %struct.PyObject*, i32, i32*)* ; <i32 (i32, %struct.PyObject*, i32, i32*)*> [#uses=1]
|
||||
%tmp79 = load %struct.PyObject*, %struct.PyObject** %errobj, align 8 ; <%struct.PyObject*> [#uses=1]
|
||||
%tmp80 = load i32, i32* %errmask, align 4 ; <i32> [#uses=1]
|
||||
%tmp82 = call i32 %tmp7677( i32 %tmp80, %struct.PyObject* %tmp79, i32 %tmp56, i32* %first ) ; <i32> [#uses=1]
|
||||
store i32 1, ptr %first, align 4
|
||||
%tmp74 = load ptr, ptr @PyUFunc_API, align 8 ; <ptr> [#uses=1]
|
||||
%tmp75 = getelementptr ptr, ptr %tmp74, i64 29 ; <ptr> [#uses=1]
|
||||
%tmp76 = load ptr, ptr %tmp75 ; <ptr> [#uses=1]
|
||||
%tmp79 = load ptr, ptr %errobj, align 8 ; <ptr> [#uses=1]
|
||||
%tmp80 = load i32, ptr %errmask, align 4 ; <i32> [#uses=1]
|
||||
%tmp82 = call i32 %tmp76( i32 %tmp80, ptr %tmp79, i32 %tmp56, ptr %first ) ; <i32> [#uses=1]
|
||||
%tmp83 = icmp eq i32 %tmp82, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp83, label %cond_next89, label %UnifiedReturnBlock
|
||||
|
||||
cond_next89: ; preds = %cond_next73, %ubyte_ctype_remainder.exit
|
||||
%tmp90 = call %struct.PyObject* @PyTuple_New( i64 2 ) ; <%struct.PyObject*> [#uses=9]
|
||||
%tmp92 = icmp eq %struct.PyObject* %tmp90, null ; <i1> [#uses=1]
|
||||
%tmp90 = call ptr @PyTuple_New( i64 2 ) ; <ptr> [#uses=9]
|
||||
%tmp92 = icmp eq ptr %tmp90, null ; <i1> [#uses=1]
|
||||
br i1 %tmp92, label %UnifiedReturnBlock, label %cond_next97
|
||||
|
||||
cond_next97: ; preds = %cond_next89
|
||||
%tmp98 = load i8**, i8*** @PyArray_API, align 8 ; <i8**> [#uses=1]
|
||||
%tmp99 = getelementptr i8*, i8** %tmp98, i64 25 ; <i8**> [#uses=1]
|
||||
%tmp100 = load i8*, i8** %tmp99 ; <i8*> [#uses=1]
|
||||
%tmp100101 = bitcast i8* %tmp100 to %struct._typeobject* ; <%struct._typeobject*> [#uses=2]
|
||||
%tmp102 = getelementptr %struct._typeobject, %struct._typeobject* %tmp100101, i32 0, i32 38 ; <%struct.PyObject* (%struct._typeobject*, i64)**> [#uses=1]
|
||||
%tmp103 = load %struct.PyObject* (%struct._typeobject*, i64)*, %struct.PyObject* (%struct._typeobject*, i64)** %tmp102 ; <%struct.PyObject* (%struct._typeobject*, i64)*> [#uses=1]
|
||||
%tmp108 = call %struct.PyObject* %tmp103( %struct._typeobject* %tmp100101, i64 0 ) ; <%struct.PyObject*> [#uses=3]
|
||||
%tmp110 = icmp eq %struct.PyObject* %tmp108, null ; <i1> [#uses=1]
|
||||
%tmp98 = load ptr, ptr @PyArray_API, align 8 ; <ptr> [#uses=1]
|
||||
%tmp99 = getelementptr ptr, ptr %tmp98, i64 25 ; <ptr> [#uses=1]
|
||||
%tmp100 = load ptr, ptr %tmp99 ; <ptr> [#uses=1]
|
||||
%tmp102 = getelementptr %struct._typeobject, ptr %tmp100, i32 0, i32 38 ; <ptr> [#uses=1]
|
||||
%tmp103 = load ptr, ptr %tmp102 ; <ptr> [#uses=1]
|
||||
%tmp108 = call ptr %tmp103( ptr %tmp100, i64 0 ) ; <ptr> [#uses=3]
|
||||
%tmp110 = icmp eq ptr %tmp108, null ; <i1> [#uses=1]
|
||||
br i1 %tmp110, label %cond_true113, label %cond_next135
|
||||
|
||||
cond_true113: ; preds = %cond_next97
|
||||
%tmp115 = getelementptr %struct.PyObject, %struct.PyObject* %tmp90, i32 0, i32 0 ; <i64*> [#uses=2]
|
||||
%tmp116 = load i64, i64* %tmp115 ; <i64> [#uses=1]
|
||||
%tmp115 = getelementptr %struct.PyObject, ptr %tmp90, i32 0, i32 0 ; <ptr> [#uses=2]
|
||||
%tmp116 = load i64, ptr %tmp115 ; <i64> [#uses=1]
|
||||
%tmp117 = add i64 %tmp116, -1 ; <i64> [#uses=2]
|
||||
store i64 %tmp117, i64* %tmp115
|
||||
store i64 %tmp117, ptr %tmp115
|
||||
%tmp123 = icmp eq i64 %tmp117, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp123, label %cond_true126, label %UnifiedReturnBlock
|
||||
|
||||
cond_true126: ; preds = %cond_true113
|
||||
%tmp128 = getelementptr %struct.PyObject, %struct.PyObject* %tmp90, i32 0, i32 1 ; <%struct._typeobject**> [#uses=1]
|
||||
%tmp129 = load %struct._typeobject*, %struct._typeobject** %tmp128 ; <%struct._typeobject*> [#uses=1]
|
||||
%tmp130 = getelementptr %struct._typeobject, %struct._typeobject* %tmp129, i32 0, i32 6 ; <void (%struct.PyObject*)**> [#uses=1]
|
||||
%tmp131 = load void (%struct.PyObject*)*, void (%struct.PyObject*)** %tmp130 ; <void (%struct.PyObject*)*> [#uses=1]
|
||||
call void %tmp131( %struct.PyObject* %tmp90 )
|
||||
ret %struct.PyObject* null
|
||||
%tmp128 = getelementptr %struct.PyObject, ptr %tmp90, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp129 = load ptr, ptr %tmp128 ; <ptr> [#uses=1]
|
||||
%tmp130 = getelementptr %struct._typeobject, ptr %tmp129, i32 0, i32 6 ; <ptr> [#uses=1]
|
||||
%tmp131 = load ptr, ptr %tmp130 ; <ptr> [#uses=1]
|
||||
call void %tmp131( ptr %tmp90 )
|
||||
ret ptr null
|
||||
|
||||
cond_next135: ; preds = %cond_next97
|
||||
%tmp136137 = bitcast %struct.PyObject* %tmp108 to %struct.PyBoolScalarObject* ; <%struct.PyBoolScalarObject*> [#uses=1]
|
||||
%tmp139 = getelementptr %struct.PyBoolScalarObject, %struct.PyBoolScalarObject* %tmp136137, i32 0, i32 2 ; <i8*> [#uses=1]
|
||||
store i8 %out.2, i8* %tmp139
|
||||
%tmp140141 = bitcast %struct.PyObject* %tmp90 to %struct.PyTupleObject* ; <%struct.PyTupleObject*> [#uses=2]
|
||||
%tmp143 = getelementptr %struct.PyTupleObject, %struct.PyTupleObject* %tmp140141, i32 0, i32 3, i64 0 ; <%struct.PyObject**> [#uses=1]
|
||||
store %struct.PyObject* %tmp108, %struct.PyObject** %tmp143
|
||||
%tmp145 = load i8**, i8*** @PyArray_API, align 8 ; <i8**> [#uses=1]
|
||||
%tmp146 = getelementptr i8*, i8** %tmp145, i64 25 ; <i8**> [#uses=1]
|
||||
%tmp147 = load i8*, i8** %tmp146 ; <i8*> [#uses=1]
|
||||
%tmp147148 = bitcast i8* %tmp147 to %struct._typeobject* ; <%struct._typeobject*> [#uses=2]
|
||||
%tmp149 = getelementptr %struct._typeobject, %struct._typeobject* %tmp147148, i32 0, i32 38 ; <%struct.PyObject* (%struct._typeobject*, i64)**> [#uses=1]
|
||||
%tmp150 = load %struct.PyObject* (%struct._typeobject*, i64)*, %struct.PyObject* (%struct._typeobject*, i64)** %tmp149 ; <%struct.PyObject* (%struct._typeobject*, i64)*> [#uses=1]
|
||||
%tmp155 = call %struct.PyObject* %tmp150( %struct._typeobject* %tmp147148, i64 0 ) ; <%struct.PyObject*> [#uses=3]
|
||||
%tmp157 = icmp eq %struct.PyObject* %tmp155, null ; <i1> [#uses=1]
|
||||
%tmp139 = getelementptr %struct.PyBoolScalarObject, ptr %tmp108, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
store i8 %out.2, ptr %tmp139
|
||||
%tmp143 = getelementptr %struct.PyTupleObject, ptr %tmp90, i32 0, i32 3, i64 0 ; <ptr> [#uses=1]
|
||||
store ptr %tmp108, ptr %tmp143
|
||||
%tmp145 = load ptr, ptr @PyArray_API, align 8 ; <ptr> [#uses=1]
|
||||
%tmp146 = getelementptr ptr, ptr %tmp145, i64 25 ; <ptr> [#uses=1]
|
||||
%tmp147 = load ptr, ptr %tmp146 ; <ptr> [#uses=1]
|
||||
%tmp149 = getelementptr %struct._typeobject, ptr %tmp147, i32 0, i32 38 ; <ptr> [#uses=1]
|
||||
%tmp150 = load ptr, ptr %tmp149 ; <ptr> [#uses=1]
|
||||
%tmp155 = call ptr %tmp150( ptr %tmp147, i64 0 ) ; <ptr> [#uses=3]
|
||||
%tmp157 = icmp eq ptr %tmp155, null ; <i1> [#uses=1]
|
||||
br i1 %tmp157, label %cond_true160, label %cond_next182
|
||||
|
||||
cond_true160: ; preds = %cond_next135
|
||||
%tmp162 = getelementptr %struct.PyObject, %struct.PyObject* %tmp90, i32 0, i32 0 ; <i64*> [#uses=2]
|
||||
%tmp163 = load i64, i64* %tmp162 ; <i64> [#uses=1]
|
||||
%tmp162 = getelementptr %struct.PyObject, ptr %tmp90, i32 0, i32 0 ; <ptr> [#uses=2]
|
||||
%tmp163 = load i64, ptr %tmp162 ; <i64> [#uses=1]
|
||||
%tmp164 = add i64 %tmp163, -1 ; <i64> [#uses=2]
|
||||
store i64 %tmp164, i64* %tmp162
|
||||
store i64 %tmp164, ptr %tmp162
|
||||
%tmp170 = icmp eq i64 %tmp164, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp170, label %cond_true173, label %UnifiedReturnBlock
|
||||
|
||||
cond_true173: ; preds = %cond_true160
|
||||
%tmp175 = getelementptr %struct.PyObject, %struct.PyObject* %tmp90, i32 0, i32 1 ; <%struct._typeobject**> [#uses=1]
|
||||
%tmp176 = load %struct._typeobject*, %struct._typeobject** %tmp175 ; <%struct._typeobject*> [#uses=1]
|
||||
%tmp177 = getelementptr %struct._typeobject, %struct._typeobject* %tmp176, i32 0, i32 6 ; <void (%struct.PyObject*)**> [#uses=1]
|
||||
%tmp178 = load void (%struct.PyObject*)*, void (%struct.PyObject*)** %tmp177 ; <void (%struct.PyObject*)*> [#uses=1]
|
||||
call void %tmp178( %struct.PyObject* %tmp90 )
|
||||
ret %struct.PyObject* null
|
||||
%tmp175 = getelementptr %struct.PyObject, ptr %tmp90, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp176 = load ptr, ptr %tmp175 ; <ptr> [#uses=1]
|
||||
%tmp177 = getelementptr %struct._typeobject, ptr %tmp176, i32 0, i32 6 ; <ptr> [#uses=1]
|
||||
%tmp178 = load ptr, ptr %tmp177 ; <ptr> [#uses=1]
|
||||
call void %tmp178( ptr %tmp90 )
|
||||
ret ptr null
|
||||
|
||||
cond_next182: ; preds = %cond_next135
|
||||
%tmp183184 = bitcast %struct.PyObject* %tmp155 to %struct.PyBoolScalarObject* ; <%struct.PyBoolScalarObject*> [#uses=1]
|
||||
%tmp186 = getelementptr %struct.PyBoolScalarObject, %struct.PyBoolScalarObject* %tmp183184, i32 0, i32 2 ; <i8*> [#uses=1]
|
||||
store i8 %out2.0, i8* %tmp186
|
||||
%tmp190 = getelementptr %struct.PyTupleObject, %struct.PyTupleObject* %tmp140141, i32 0, i32 3, i64 1 ; <%struct.PyObject**> [#uses=1]
|
||||
store %struct.PyObject* %tmp155, %struct.PyObject** %tmp190
|
||||
ret %struct.PyObject* %tmp90
|
||||
%tmp186 = getelementptr %struct.PyBoolScalarObject, ptr %tmp155, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
store i8 %out2.0, ptr %tmp186
|
||||
%tmp190 = getelementptr %struct.PyTupleObject, ptr %tmp90, i32 0, i32 3, i64 1 ; <ptr> [#uses=1]
|
||||
store ptr %tmp155, ptr %tmp190
|
||||
ret ptr %tmp90
|
||||
|
||||
UnifiedReturnBlock: ; preds = %cond_true160, %cond_true113, %cond_next89, %cond_next73, %cond_true61, %bb17
|
||||
ret %struct.PyObject* null
|
||||
ret ptr null
|
||||
}
|
||||
|
||||
declare i32 @feraiseexcept(i32)
|
||||
|
||||
declare fastcc i32 @_ubyte_convert_to_ctype(%struct.PyObject*, i8*)
|
||||
declare fastcc i32 @_ubyte_convert_to_ctype(ptr, ptr)
|
||||
|
||||
declare %struct.PyObject* @PyErr_Occurred()
|
||||
declare ptr @PyErr_Occurred()
|
||||
|
||||
declare %struct.PyObject* @PyTuple_New(i64)
|
||||
declare ptr @PyTuple_New(i64)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
|
||||
|
||||
@X = global i32 0 ; <i32*> [#uses=1]
|
||||
@X = global i32 0 ; <ptr> [#uses=1]
|
||||
|
||||
define i32 @_Z3fooi(i32 %x) {
|
||||
; CHECK-LABEL: _Z3fooi:
|
||||
|
@ -11,7 +11,7 @@ define i32 @_Z3fooi(i32 %x) {
|
|||
; CHECK-NEXT: movsbl %al, %eax
|
||||
; CHECK-NEXT: retl
|
||||
entry:
|
||||
store i32 %x, i32* @X, align 4
|
||||
store i32 %x, ptr @X, align 4
|
||||
%retval67 = trunc i32 %x to i8 ; <i8> [#uses=1]
|
||||
%retval = sext i8 %retval67 to i32
|
||||
ret i32 %retval
|
||||
|
|
|
@ -1,50 +1,46 @@
|
|||
; RUN: llc < %s -mtriple=x86_64-apple-darwin -x86-asm-syntax=intel | FileCheck %s
|
||||
; CHECK-NOT: lea R
|
||||
|
||||
%struct.AGenericCall = type { %struct.AGenericManager*, %struct.ComponentParameters*, i32* }
|
||||
%struct.AGenericCall = type { ptr, ptr, ptr }
|
||||
%struct.AGenericManager = type <{ i8 }>
|
||||
%struct.ComponentInstanceRecord = type opaque
|
||||
%struct.ComponentParameters = type { [1 x i64] }
|
||||
|
||||
define i32 @_ZN12AGenericCall10MapIDPtrAtEsRP23ComponentInstanceRecord(%struct.AGenericCall* %this, i16 signext %param, %struct.ComponentInstanceRecord** %instance) {
|
||||
define i32 @_ZN12AGenericCall10MapIDPtrAtEsRP23ComponentInstanceRecord(ptr %this, i16 signext %param, ptr %instance) {
|
||||
entry:
|
||||
%tmp4 = icmp slt i16 %param, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp4, label %cond_true, label %cond_next
|
||||
|
||||
cond_true: ; preds = %entry
|
||||
%tmp1415 = shl i16 %param, 3 ; <i16> [#uses=1]
|
||||
%tmp17 = getelementptr %struct.AGenericCall, %struct.AGenericCall* %this, i32 0, i32 1 ; <%struct.ComponentParameters**> [#uses=1]
|
||||
%tmp18 = load %struct.ComponentParameters*, %struct.ComponentParameters** %tmp17, align 8 ; <%struct.ComponentParameters*> [#uses=1]
|
||||
%tmp1920 = bitcast %struct.ComponentParameters* %tmp18 to i8* ; <i8*> [#uses=1]
|
||||
%tmp17 = getelementptr %struct.AGenericCall, ptr %this, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp18 = load ptr, ptr %tmp17, align 8 ; <ptr> [#uses=1]
|
||||
%tmp212223 = sext i16 %tmp1415 to i64 ; <i64> [#uses=1]
|
||||
%tmp24 = getelementptr i8, i8* %tmp1920, i64 %tmp212223 ; <i8*> [#uses=1]
|
||||
%tmp2425 = bitcast i8* %tmp24 to i64* ; <i64*> [#uses=1]
|
||||
%tmp28 = load i64, i64* %tmp2425, align 8 ; <i64> [#uses=1]
|
||||
%tmp2829 = inttoptr i64 %tmp28 to i32* ; <i32*> [#uses=1]
|
||||
%tmp31 = getelementptr %struct.AGenericCall, %struct.AGenericCall* %this, i32 0, i32 2 ; <i32**> [#uses=1]
|
||||
store i32* %tmp2829, i32** %tmp31, align 8
|
||||
%tmp24 = getelementptr i8, ptr %tmp18, i64 %tmp212223 ; <ptr> [#uses=1]
|
||||
%tmp28 = load i64, ptr %tmp24, align 8 ; <i64> [#uses=1]
|
||||
%tmp2829 = inttoptr i64 %tmp28 to ptr ; <ptr> [#uses=1]
|
||||
%tmp31 = getelementptr %struct.AGenericCall, ptr %this, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
store ptr %tmp2829, ptr %tmp31, align 8
|
||||
br label %cond_next
|
||||
|
||||
cond_next: ; preds = %cond_true, %entry
|
||||
%tmp4243 = shl i16 %param, 3 ; <i16> [#uses=1]
|
||||
%tmp46 = getelementptr %struct.AGenericCall, %struct.AGenericCall* %this, i32 0, i32 1 ; <%struct.ComponentParameters**> [#uses=1]
|
||||
%tmp47 = load %struct.ComponentParameters*, %struct.ComponentParameters** %tmp46, align 8 ; <%struct.ComponentParameters*> [#uses=1]
|
||||
%tmp4849 = bitcast %struct.ComponentParameters* %tmp47 to i8* ; <i8*> [#uses=1]
|
||||
%tmp46 = getelementptr %struct.AGenericCall, ptr %this, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp47 = load ptr, ptr %tmp46, align 8 ; <ptr> [#uses=1]
|
||||
%tmp505152 = sext i16 %tmp4243 to i64 ; <i64> [#uses=1]
|
||||
%tmp53 = getelementptr i8, i8* %tmp4849, i64 %tmp505152 ; <i8*> [#uses=1]
|
||||
%tmp5354 = bitcast i8* %tmp53 to i64* ; <i64*> [#uses=1]
|
||||
%tmp58 = load i64, i64* %tmp5354, align 8 ; <i64> [#uses=1]
|
||||
%tmp53 = getelementptr i8, ptr %tmp47, i64 %tmp505152 ; <ptr> [#uses=1]
|
||||
%tmp58 = load i64, ptr %tmp53, align 8 ; <i64> [#uses=1]
|
||||
%tmp59 = icmp eq i64 %tmp58, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp59, label %UnifiedReturnBlock, label %cond_true63
|
||||
|
||||
cond_true63: ; preds = %cond_next
|
||||
%tmp65 = getelementptr %struct.AGenericCall, %struct.AGenericCall* %this, i32 0, i32 0 ; <%struct.AGenericManager**> [#uses=1]
|
||||
%tmp66 = load %struct.AGenericManager*, %struct.AGenericManager** %tmp65, align 8 ; <%struct.AGenericManager*> [#uses=1]
|
||||
%tmp69 = tail call i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord( %struct.AGenericManager* %tmp66, %struct.ComponentInstanceRecord** %instance ) ; <i32> [#uses=1]
|
||||
%tmp65 = getelementptr %struct.AGenericCall, ptr %this, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp66 = load ptr, ptr %tmp65, align 8 ; <ptr> [#uses=1]
|
||||
%tmp69 = tail call i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord( ptr %tmp66, ptr %instance ) ; <i32> [#uses=1]
|
||||
ret i32 %tmp69
|
||||
|
||||
UnifiedReturnBlock: ; preds = %cond_next
|
||||
ret i32 undef
|
||||
}
|
||||
|
||||
declare i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord(%struct.AGenericManager*, %struct.ComponentInstanceRecord**)
|
||||
declare i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord(ptr, ptr)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
; RUN: llc < %s -mtriple=i686-pc-linux-gnu | FileCheck %s
|
||||
|
||||
@__gthrw_pthread_once = weak alias i32 (i32*, void ()*), i32 (i32*, void ()*)* @pthread_once ; <i32 (i32*, void ()*)*> [#uses=0]
|
||||
@__gthrw_pthread_once = weak alias i32 (ptr, ptr), ptr @pthread_once ; <ptr> [#uses=0]
|
||||
|
||||
define weak i32 @pthread_once(i32*, void ()*) {
|
||||
define weak i32 @pthread_once(ptr, ptr) {
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
|
||||
|
||||
%struct.gl_texture_image = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8* }
|
||||
%struct.gl_texture_object = type { i32, i32, i32, float, [4 x i32], i32, i32, i32, i32, i32, float, [11 x %struct.gl_texture_image*], [1024 x i8], i32, i32, i32, i8, i8*, i8, void (%struct.gl_texture_object*, i32, float*, float*, float*, float*, i8*, i8*, i8*, i8*)*, %struct.gl_texture_object* }
|
||||
%struct.gl_texture_image = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr }
|
||||
%struct.gl_texture_object = type { i32, i32, i32, float, [4 x i32], i32, i32, i32, i32, i32, float, [11 x ptr], [1024 x i8], i32, i32, i32, i8, ptr, i8, ptr, ptr }
|
||||
|
||||
define fastcc void @sample_3d_linear(%struct.gl_texture_object* %tObj, %struct.gl_texture_image* %img, float %s, float %t, float %r, i8* %red, i8* %green, i8* %blue, i8* %alpha) {
|
||||
define fastcc void @sample_3d_linear(ptr %tObj, ptr %img, float %s, float %t, float %r, ptr %red, ptr %green, ptr %blue, ptr %alpha) {
|
||||
; CHECK-LABEL: sample_3d_linear:
|
||||
; CHECK: # %bb.0: # %entry
|
||||
; CHECK-NEXT: pushl %esi
|
||||
|
@ -22,7 +22,7 @@ define fastcc void @sample_3d_linear(%struct.gl_texture_object* %tObj, %struct.g
|
|||
; CHECK-NEXT: .cfi_def_cfa_offset 4
|
||||
; CHECK-NEXT: retl
|
||||
entry:
|
||||
%tmp15 = load i32, i32* null, align 4 ; <i32> [#uses=1]
|
||||
%tmp15 = load i32, ptr null, align 4 ; <i32> [#uses=1]
|
||||
%tmp16 = icmp eq i32 %tmp15, 10497 ; <i1> [#uses=1]
|
||||
%tmp2152 = call float @floorf( float 0.000000e+00 ) ; <float> [#uses=0]
|
||||
br i1 %tmp16, label %cond_true, label %cond_false
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
|
||||
|
||||
define signext i16 @f(i32* %bp, i32* %ss) {
|
||||
define signext i16 @f(ptr %bp, ptr %ss) {
|
||||
; CHECK-LABEL: f:
|
||||
; CHECK: # %bb.0: # %entry
|
||||
; CHECK-NEXT: pushl %esi
|
||||
|
@ -30,15 +30,15 @@ entry:
|
|||
cond_next127: ; preds = %cond_next391, %entry
|
||||
%v.1 = phi i32 [ undef, %entry ], [ %tmp411, %cond_next391 ] ; <i32> [#uses=1]
|
||||
%tmp149 = mul i32 0, %v.1 ; <i32> [#uses=0]
|
||||
%tmpss = load i32, i32* %ss, align 4 ; <i32> [#uses=1]
|
||||
%tmpbp = load i32, i32* %bp, align 4 ; <i32> [#uses=2]
|
||||
%tmpss = load i32, ptr %ss, align 4 ; <i32> [#uses=1]
|
||||
%tmpbp = load i32, ptr %bp, align 4 ; <i32> [#uses=2]
|
||||
%tmp254 = and i32 %tmpss, 15 ; <i32> [#uses=1]
|
||||
%tmp256 = and i32 %tmpbp, 15 ; <i32> [#uses=2]
|
||||
br label %cond_next391
|
||||
|
||||
cond_next391: ; preds = %cond_next127
|
||||
%tmp393 = load i32, i32* %ss, align 4 ; <i32> [#uses=1]
|
||||
%tmp395 = load i32, i32* %bp, align 4 ; <i32> [#uses=2]
|
||||
%tmp393 = load i32, ptr %ss, align 4 ; <i32> [#uses=1]
|
||||
%tmp395 = load i32, ptr %bp, align 4 ; <i32> [#uses=2]
|
||||
%tmp396 = shl i32 %tmp393, %tmp395 ; <i32> [#uses=2]
|
||||
%tmp398 = sub i32 32, %tmp256 ; <i32> [#uses=2]
|
||||
%tmp399 = lshr i32 %tmp396, %tmp398 ; <i32> [#uses=1]
|
||||
|
@ -48,7 +48,7 @@ cond_next391: ; preds = %cond_next127
|
|||
%tmp411 = sub i32 %tmp399, %tmp409 ; <i32> [#uses=1]
|
||||
%tmp422445 = add i32 %tmp254, 0 ; <i32> [#uses=1]
|
||||
%tmp426447 = add i32 %tmp395, %tmp256 ; <i32> [#uses=1]
|
||||
store i32 %tmp426447, i32* %bp, align 4
|
||||
store i32 %tmp426447, ptr %bp, align 4
|
||||
%tmp429448 = icmp ult i32 %tmp422445, 63 ; <i1> [#uses=1]
|
||||
br i1 %tmp429448, label %cond_next127, label %UnifiedReturnBlock
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-- -mattr=+sse2 | FileCheck %s
|
||||
|
||||
define fastcc void @fht(float* %fz, i16 signext %n) {
|
||||
define fastcc void @fht(ptr %fz, i16 signext %n) {
|
||||
; CHECK-LABEL: fht:
|
||||
; CHECK: # %bb.0: # %entry
|
||||
; CHECK-NEXT: movss {{.*#+}} xmm3 = mem[0],zero,zero,zero
|
||||
|
@ -36,20 +36,20 @@ entry:
|
|||
|
||||
bb171.preheader: ; preds = %entry
|
||||
%tmp176 = fadd float 0.000000e+00, 1.000000e+00 ; <float> [#uses=2]
|
||||
%gi.1 = getelementptr float, float* %fz, i32 0 ; <float*> [#uses=2]
|
||||
%tmp240 = load float, float* %gi.1, align 4 ; <float> [#uses=1]
|
||||
%gi.1 = getelementptr float, ptr %fz, i32 0 ; <ptr> [#uses=2]
|
||||
%tmp240 = load float, ptr %gi.1, align 4 ; <float> [#uses=1]
|
||||
%tmp242 = fsub float %tmp240, 0.000000e+00 ; <float> [#uses=2]
|
||||
%tmp251 = getelementptr float, float* %fz, i32 0 ; <float*> [#uses=1]
|
||||
%tmp252 = load float, float* %tmp251, align 4 ; <float> [#uses=1]
|
||||
%tmp258 = getelementptr float, float* %fz, i32 0 ; <float*> [#uses=2]
|
||||
%tmp259 = load float, float* %tmp258, align 4 ; <float> [#uses=2]
|
||||
%tmp251 = getelementptr float, ptr %fz, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp252 = load float, ptr %tmp251, align 4 ; <float> [#uses=1]
|
||||
%tmp258 = getelementptr float, ptr %fz, i32 0 ; <ptr> [#uses=2]
|
||||
%tmp259 = load float, ptr %tmp258, align 4 ; <float> [#uses=2]
|
||||
%tmp261 = fmul float %tmp259, %tmp176 ; <float> [#uses=1]
|
||||
%tmp262 = fsub float 0.000000e+00, %tmp261 ; <float> [#uses=2]
|
||||
%tmp269 = fmul float %tmp252, %tmp176 ; <float> [#uses=1]
|
||||
%tmp276 = fmul float %tmp259, 0.000000e+00 ; <float> [#uses=1]
|
||||
%tmp277 = fadd float %tmp269, %tmp276 ; <float> [#uses=2]
|
||||
%tmp281 = getelementptr float, float* %fz, i32 0 ; <float*> [#uses=1]
|
||||
%tmp282 = load float, float* %tmp281, align 4 ; <float> [#uses=2]
|
||||
%tmp281 = getelementptr float, ptr %fz, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp282 = load float, ptr %tmp281, align 4 ; <float> [#uses=2]
|
||||
%tmp284 = fsub float %tmp282, %tmp277 ; <float> [#uses=1]
|
||||
%tmp291 = fadd float %tmp282, %tmp277 ; <float> [#uses=1]
|
||||
%tmp298 = fsub float 0.000000e+00, %tmp262 ; <float> [#uses=1]
|
||||
|
@ -58,16 +58,16 @@ bb171.preheader: ; preds = %entry
|
|||
%tmp318 = fmul float 0.000000e+00, %tmp298 ; <float> [#uses=1]
|
||||
%tmp319 = fadd float %tmp315, %tmp318 ; <float> [#uses=1]
|
||||
%tmp329 = fadd float 0.000000e+00, %tmp319 ; <float> [#uses=1]
|
||||
store float %tmp329, float* null, align 4
|
||||
store float %tmp329, ptr null, align 4
|
||||
%tmp336 = fsub float %tmp242, 0.000000e+00 ; <float> [#uses=1]
|
||||
store float %tmp336, float* %tmp258, align 4
|
||||
store float %tmp336, ptr %tmp258, align 4
|
||||
%tmp343 = fadd float %tmp242, 0.000000e+00 ; <float> [#uses=1]
|
||||
store float %tmp343, float* null, align 4
|
||||
store float %tmp343, ptr null, align 4
|
||||
%tmp355 = fmul float 0.000000e+00, %tmp305 ; <float> [#uses=1]
|
||||
%tmp358 = fmul float 0.000000e+00, %tmp284 ; <float> [#uses=1]
|
||||
%tmp359 = fadd float %tmp355, %tmp358 ; <float> [#uses=1]
|
||||
%tmp369 = fadd float 0.000000e+00, %tmp359 ; <float> [#uses=1]
|
||||
store float %tmp369, float* %gi.1, align 4
|
||||
store float %tmp369, ptr %gi.1, align 4
|
||||
ret void
|
||||
|
||||
bb431: ; preds = %entry
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-- -mcpu=corei7 | FileCheck %s
|
||||
|
||||
define signext i16 @t(i16* %qmatrix, i16* %dct, i16* %acBaseTable, i16* %acExtTable, i16 signext %acBaseRes, i16 signext %acMaskRes, i16 signext %acExtRes, i32* %bitptr, i32* %source, i32 %markerPrefix, i8** %byteptr, i32 %scale, i32 %round, i32 %bits) {
|
||||
define signext i16 @t(ptr %qmatrix, ptr %dct, ptr %acBaseTable, ptr %acExtTable, i16 signext %acBaseRes, i16 signext %acMaskRes, i16 signext %acExtRes, ptr %bitptr, ptr %source, i32 %markerPrefix, ptr %byteptr, i32 %scale, i32 %round, i32 %bits) {
|
||||
; CHECK-LABEL: t:
|
||||
; CHECK: # %bb.0: # %entry
|
||||
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
|
@ -38,14 +38,14 @@ cond_next245: ; preds = %cond_next127
|
|||
br i1 false, label %cond_true267, label %cond_next391
|
||||
|
||||
cond_true267: ; preds = %cond_next245
|
||||
%tmp269 = load i8*, i8** %byteptr, align 4 ; <i8*> [#uses=3]
|
||||
%tmp270 = load i8, i8* %tmp269, align 1 ; <i8> [#uses=1]
|
||||
%tmp269 = load ptr, ptr %byteptr, align 4 ; <ptr> [#uses=3]
|
||||
%tmp270 = load i8, ptr %tmp269, align 1 ; <i8> [#uses=1]
|
||||
%tmp270271 = zext i8 %tmp270 to i32 ; <i32> [#uses=1]
|
||||
%tmp272 = getelementptr i8, i8* %tmp269, i32 1 ; <i8*> [#uses=2]
|
||||
store i8* %tmp272, i8** %byteptr, align 4
|
||||
%tmp276 = load i8, i8* %tmp272, align 1 ; <i8> [#uses=1]
|
||||
%tmp278 = getelementptr i8, i8* %tmp269, i32 2 ; <i8*> [#uses=1]
|
||||
store i8* %tmp278, i8** %byteptr, align 4
|
||||
%tmp272 = getelementptr i8, ptr %tmp269, i32 1 ; <ptr> [#uses=2]
|
||||
store ptr %tmp272, ptr %byteptr, align 4
|
||||
%tmp276 = load i8, ptr %tmp272, align 1 ; <i8> [#uses=1]
|
||||
%tmp278 = getelementptr i8, ptr %tmp269, i32 2 ; <ptr> [#uses=1]
|
||||
store ptr %tmp278, ptr %byteptr, align 4
|
||||
%tmp286 = icmp eq i32 %tmp270271, %markerPrefix ; <i1> [#uses=1]
|
||||
%cond = icmp eq i8 %tmp276, 0 ; <i1> [#uses=1]
|
||||
%bothcond = and i1 %tmp286, %cond ; <i1> [#uses=1]
|
||||
|
@ -58,9 +58,9 @@ cond_next327: ; preds = %cond_true267
|
|||
br i1 false, label %cond_true343, label %cond_next391
|
||||
|
||||
cond_true343: ; preds = %cond_next327
|
||||
%tmp345 = load i8*, i8** %byteptr, align 4 ; <i8*> [#uses=1]
|
||||
store i8* null, i8** %byteptr, align 4
|
||||
store i8* %tmp345, i8** %byteptr, align 4
|
||||
%tmp345 = load ptr, ptr %byteptr, align 4 ; <ptr> [#uses=1]
|
||||
store ptr null, ptr %byteptr, align 4
|
||||
store ptr %tmp345, ptr %byteptr, align 4
|
||||
br label %cond_next391
|
||||
|
||||
cond_next391: ; preds = %cond_true343, %cond_next327, %cond_next245
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
%struct._Unwind_Context = type { }
|
||||
|
||||
define i32 @execute_stack_op(i8* %op_ptr, i8* %op_end, %struct._Unwind_Context* %context, i64 %initial) {
|
||||
define i32 @execute_stack_op(ptr %op_ptr, ptr %op_end, ptr %context, i64 %initial) {
|
||||
entry:
|
||||
br i1 false, label %bb, label %return
|
||||
|
||||
|
@ -10,8 +10,8 @@ bb: ; preds = %bb31, %entry
|
|||
br i1 false, label %bb6, label %bb31
|
||||
|
||||
bb6: ; preds = %bb
|
||||
%tmp10 = load i64, i64* null, align 8 ; <i64> [#uses=1]
|
||||
%tmp16 = load i64, i64* null, align 8 ; <i64> [#uses=1]
|
||||
%tmp10 = load i64, ptr null, align 8 ; <i64> [#uses=1]
|
||||
%tmp16 = load i64, ptr null, align 8 ; <i64> [#uses=1]
|
||||
br i1 false, label %bb23, label %bb31
|
||||
|
||||
bb23: ; preds = %bb6
|
||||
|
|
|
@ -2,307 +2,307 @@
|
|||
; PR1729
|
||||
|
||||
%struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
|
||||
%struct.VEC_edge = type { i32, i32, [1 x %struct.edge_def*] }
|
||||
%struct.VEC_tree = type { i32, i32, [1 x %struct.tree_node*] }
|
||||
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] }
|
||||
%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
|
||||
%struct._obstack_chunk = type { i8*, %struct._obstack_chunk*, [4 x i8] }
|
||||
%struct.VEC_edge = type { i32, i32, [1 x ptr] }
|
||||
%struct.VEC_tree = type { i32, i32, [1 x ptr] }
|
||||
%struct._IO_FILE = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i64, i16, i8, [1 x i8], ptr, i64, ptr, ptr, ptr, ptr, i64, i32, [20 x i8] }
|
||||
%struct._IO_marker = type { ptr, ptr, i32 }
|
||||
%struct._obstack_chunk = type { ptr, ptr, [4 x i8] }
|
||||
%struct.addr_diff_vec_flags = type <{ i8, i8, i8, i8 }>
|
||||
%struct.alloc_pool_def = type { i8*, i64, i64, %struct.alloc_pool_list_def*, i64, i64, i64, %struct.alloc_pool_list_def*, i64, i64 }
|
||||
%struct.alloc_pool_list_def = type { %struct.alloc_pool_list_def* }
|
||||
%struct.basic_block_def = type { %struct.rtx_def*, %struct.rtx_def*, %struct.tree_node*, %struct.VEC_edge*, %struct.VEC_edge*, %struct.bitmap_head_def*, %struct.bitmap_head_def*, i8*, %struct.loop*, [2 x %struct.et_node*], %struct.basic_block_def*, %struct.basic_block_def*, %struct.reorder_block_def*, %struct.bb_ann_d*, i64, i32, i32, i32, i32 }
|
||||
%struct.alloc_pool_def = type { ptr, i64, i64, ptr, i64, i64, i64, ptr, i64, i64 }
|
||||
%struct.alloc_pool_list_def = type { ptr }
|
||||
%struct.basic_block_def = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x ptr], ptr, ptr, ptr, ptr, i64, i32, i32, i32, i32 }
|
||||
%struct.bb_ann_d = type opaque
|
||||
%struct.bitmap_element_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, [2 x i64] }
|
||||
%struct.bitmap_head_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, %struct.bitmap_obstack* }
|
||||
%struct.bitmap_obstack = type { %struct.bitmap_element_def*, %struct.bitmap_head_def*, %struct.obstack }
|
||||
%struct.bitmap_element_def = type { ptr, ptr, i32, [2 x i64] }
|
||||
%struct.bitmap_head_def = type { ptr, ptr, i32, ptr }
|
||||
%struct.bitmap_obstack = type { ptr, ptr, %struct.obstack }
|
||||
%struct.cselib_val_struct = type opaque
|
||||
%struct.dataflow_d = type opaque
|
||||
%struct.die_struct = type opaque
|
||||
%struct.edge_def = type { %struct.basic_block_def*, %struct.basic_block_def*, %struct.edge_def_insns, i8*, %struct.location_t*, i32, i32, i64, i32 }
|
||||
%struct.edge_def_insns = type { %struct.rtx_def* }
|
||||
%struct.edge_iterator = type { i32, %struct.VEC_edge** }
|
||||
%struct.edge_def = type { ptr, ptr, %struct.edge_def_insns, ptr, ptr, i32, i32, i64, i32 }
|
||||
%struct.edge_def_insns = type { ptr }
|
||||
%struct.edge_iterator = type { i32, ptr }
|
||||
%struct.eh_status = type opaque
|
||||
%struct.elt_list = type opaque
|
||||
%struct.emit_status = type { i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack*, i32, %struct.location_t, i32, i8*, %struct.rtx_def** }
|
||||
%struct.emit_status = type { i32, i32, ptr, ptr, ptr, i32, %struct.location_t, i32, ptr, ptr }
|
||||
%struct.et_node = type opaque
|
||||
%struct.expr_status = type { i32, i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def* }
|
||||
%struct.function = type { %struct.eh_status*, %struct.expr_status*, %struct.emit_status*, %struct.varasm_status*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.function*, i32, i32, i32, i32, %struct.rtx_def*, %struct.CUMULATIVE_ARGS, %struct.rtx_def*, %struct.rtx_def*, %struct.initial_value_struct*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, i8, i32, i64, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.varray_head_tag*, %struct.temp_slot*, i32, %struct.var_refs_queue*, i32, i32, %struct.rtvec_def*, %struct.tree_node*, i32, i32, i32, %struct.machine_function*, i32, i32, i8, i8, %struct.language_function*, %struct.rtx_def*, i32, i32, i32, i32, %struct.location_t, %struct.varray_head_tag*, %struct.tree_node*, %struct.tree_node*, i8, i8, i8 }
|
||||
%struct.ht_identifier = type { i8*, i32, i32 }
|
||||
%struct.expr_status = type { i32, i32, i32, ptr, ptr, ptr }
|
||||
%struct.function = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, ptr, %struct.CUMULATIVE_ARGS, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i32, i64, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, i32, ptr, ptr, i32, i32, i32, ptr, i32, i32, i8, i8, ptr, ptr, i32, i32, i32, i32, %struct.location_t, ptr, ptr, ptr, i8, i8, i8 }
|
||||
%struct.ht_identifier = type { ptr, i32, i32 }
|
||||
%struct.initial_value_struct = type opaque
|
||||
%struct.lang_decl = type opaque
|
||||
%struct.lang_type = type opaque
|
||||
%struct.language_function = type opaque
|
||||
%struct.location_t = type { i8*, i32 }
|
||||
%struct.location_t = type { ptr, i32 }
|
||||
%struct.loop = type opaque
|
||||
%struct.machine_function = type { %struct.stack_local_entry*, i8*, %struct.rtx_def*, i32, i32, i32, i32, i32 }
|
||||
%struct.mem_attrs = type { i64, %struct.tree_node*, %struct.rtx_def*, %struct.rtx_def*, i32 }
|
||||
%struct.obstack = type { i64, %struct._obstack_chunk*, i8*, i8*, i8*, i64, i32, %struct._obstack_chunk* (i8*, i64)*, void (i8*, %struct._obstack_chunk*)*, i8*, i8 }
|
||||
%struct.phi_arg_d = type { %struct.tree_node*, i8 }
|
||||
%struct.machine_function = type { ptr, ptr, ptr, i32, i32, i32, i32, i32 }
|
||||
%struct.mem_attrs = type { i64, ptr, ptr, ptr, i32 }
|
||||
%struct.obstack = type { i64, ptr, ptr, ptr, ptr, i64, i32, ptr, ptr, ptr, i8 }
|
||||
%struct.phi_arg_d = type { ptr, i8 }
|
||||
%struct.ptr_info_def = type opaque
|
||||
%struct.real_value = type opaque
|
||||
%struct.reg_attrs = type { %struct.tree_node*, i64 }
|
||||
%struct.reg_attrs = type { ptr, i64 }
|
||||
%struct.reg_info_def = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 }
|
||||
%struct.reorder_block_def = type { %struct.rtx_def*, %struct.rtx_def*, %struct.basic_block_def*, %struct.basic_block_def*, %struct.basic_block_def*, i32, i32, i32 }
|
||||
%struct.rtunion = type { i8* }
|
||||
%struct.rtvec_def = type { i32, [1 x %struct.rtx_def*] }
|
||||
%struct.reorder_block_def = type { ptr, ptr, ptr, ptr, ptr, i32, i32, i32 }
|
||||
%struct.rtunion = type { ptr }
|
||||
%struct.rtvec_def = type { i32, [1 x ptr] }
|
||||
%struct.rtx_def = type { i16, i8, i8, %struct.u }
|
||||
%struct.sequence_stack = type { %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack* }
|
||||
%struct.sequence_stack = type { ptr, ptr, ptr }
|
||||
%struct.simple_bitmap_def = type { i32, i32, i32, [1 x i64] }
|
||||
%struct.stack_local_entry = type opaque
|
||||
%struct.temp_slot = type opaque
|
||||
%struct.tree_binfo = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.VEC_tree*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.VEC_tree }
|
||||
%struct.tree_block = type { %struct.tree_common, i32, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node* }
|
||||
%struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, %union.tree_ann_d*, i8, i8, i8, i8, i8 }
|
||||
%struct.tree_complex = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node* }
|
||||
%struct.tree_decl = type { %struct.tree_common, %struct.location_t, i32, %struct.tree_node*, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, i32, %struct.tree_decl_u2, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_decl* }
|
||||
%struct.tree_binfo = type { %struct.tree_common, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.VEC_tree }
|
||||
%struct.tree_block = type { %struct.tree_common, i32, ptr, ptr, ptr, ptr, ptr, ptr }
|
||||
%struct.tree_common = type { ptr, ptr, ptr, i8, i8, i8, i8, i8 }
|
||||
%struct.tree_complex = type { %struct.tree_common, ptr, ptr }
|
||||
%struct.tree_decl = type { %struct.tree_common, %struct.location_t, i32, ptr, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, %struct.tree_decl_u2, ptr, ptr, i64, ptr }
|
||||
%struct.tree_decl_u1 = type { i64 }
|
||||
%struct.tree_decl_u1_a = type <{ i32 }>
|
||||
%struct.tree_decl_u2 = type { %struct.function* }
|
||||
%struct.tree_exp = type { %struct.tree_common, %struct.location_t*, i32, %struct.tree_node*, [1 x %struct.tree_node*] }
|
||||
%struct.tree_decl_u2 = type { ptr }
|
||||
%struct.tree_exp = type { %struct.tree_common, ptr, i32, ptr, [1 x ptr] }
|
||||
%struct.tree_identifier = type { %struct.tree_common, %struct.ht_identifier }
|
||||
%struct.tree_int_cst = type { %struct.tree_common, %struct.tree_int_cst_lowhi }
|
||||
%struct.tree_int_cst_lowhi = type { i64, i64 }
|
||||
%struct.tree_list = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node* }
|
||||
%struct.tree_list = type { %struct.tree_common, ptr, ptr }
|
||||
%struct.tree_node = type { %struct.tree_decl }
|
||||
%struct.tree_phi_node = type { %struct.tree_common, %struct.tree_node*, i32, i32, i32, %struct.basic_block_def*, %struct.dataflow_d*, [1 x %struct.phi_arg_d] }
|
||||
%struct.tree_real_cst = type { %struct.tree_common, %struct.real_value* }
|
||||
%struct.tree_ssa_name = type { %struct.tree_common, %struct.tree_node*, i32, %struct.ptr_info_def*, %struct.tree_node*, i8* }
|
||||
%struct.tree_statement_list = type { %struct.tree_common, %struct.tree_statement_list_node*, %struct.tree_statement_list_node* }
|
||||
%struct.tree_statement_list_node = type { %struct.tree_statement_list_node*, %struct.tree_statement_list_node*, %struct.tree_node* }
|
||||
%struct.tree_phi_node = type { %struct.tree_common, ptr, i32, i32, i32, ptr, ptr, [1 x %struct.phi_arg_d] }
|
||||
%struct.tree_real_cst = type { %struct.tree_common, ptr }
|
||||
%struct.tree_ssa_name = type { %struct.tree_common, ptr, i32, ptr, ptr, ptr }
|
||||
%struct.tree_statement_list = type { %struct.tree_common, ptr, ptr }
|
||||
%struct.tree_statement_list_node = type { ptr, ptr, ptr }
|
||||
%struct.tree_string = type { %struct.tree_common, i32, [1 x i8] }
|
||||
%struct.tree_type = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i32, i16, i8, i8, i32, %struct.tree_node*, %struct.tree_node*, %struct.rtunion, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_type* }
|
||||
%struct.tree_type_symtab = type { i8* }
|
||||
%struct.tree_value_handle = type { %struct.tree_common, %struct.value_set*, i32 }
|
||||
%struct.tree_vec = type { %struct.tree_common, i32, [1 x %struct.tree_node*] }
|
||||
%struct.tree_vector = type { %struct.tree_common, %struct.tree_node* }
|
||||
%struct.tree_type = type { %struct.tree_common, ptr, ptr, ptr, ptr, i32, i16, i8, i8, i32, ptr, ptr, %struct.rtunion, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr }
|
||||
%struct.tree_type_symtab = type { ptr }
|
||||
%struct.tree_value_handle = type { %struct.tree_common, ptr, i32 }
|
||||
%struct.tree_vec = type { %struct.tree_common, i32, [1 x ptr] }
|
||||
%struct.tree_vector = type { %struct.tree_common, ptr }
|
||||
%struct.u = type { [1 x %struct.rtunion] }
|
||||
%struct.value_set = type opaque
|
||||
%struct.var_refs_queue = type { %struct.rtx_def*, i32, i32, %struct.var_refs_queue* }
|
||||
%struct.var_refs_queue = type { ptr, i32, i32, ptr }
|
||||
%struct.varasm_status = type opaque
|
||||
%struct.varray_data = type { [1 x i64] }
|
||||
%struct.varray_head_tag = type { i64, i64, i32, i8*, %struct.varray_data }
|
||||
%struct.varray_head_tag = type { i64, i64, i32, ptr, %struct.varray_data }
|
||||
%union.tree_ann_d = type opaque
|
||||
@first_edge_aux_obj = external global i8* ; <i8**> [#uses=0]
|
||||
@first_block_aux_obj = external global i8* ; <i8**> [#uses=0]
|
||||
@n_edges = external global i32 ; <i32*> [#uses=0]
|
||||
@ENTRY_BLOCK_PTR = external global %struct.basic_block_def* ; <%struct.basic_block_def**> [#uses=0]
|
||||
@EXIT_BLOCK_PTR = external global %struct.basic_block_def* ; <%struct.basic_block_def**> [#uses=0]
|
||||
@n_basic_blocks = external global i32 ; <i32*> [#uses=0]
|
||||
@.str = external constant [9 x i8] ; <[9 x i8]*> [#uses=0]
|
||||
@rbi_pool = external global %struct.alloc_pool_def* ; <%struct.alloc_pool_def**> [#uses=0]
|
||||
@__FUNCTION__.19643 = external constant [18 x i8] ; <[18 x i8]*> [#uses=0]
|
||||
@.str1 = external constant [20 x i8] ; <[20 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.19670 = external constant [15 x i8] ; <[15 x i8]*> [#uses=0]
|
||||
@basic_block_info = external global %struct.varray_head_tag* ; <%struct.varray_head_tag**> [#uses=0]
|
||||
@last_basic_block = external global i32 ; <i32*> [#uses=0]
|
||||
@__FUNCTION__.19696 = external constant [14 x i8] ; <[14 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.20191 = external constant [20 x i8] ; <[20 x i8]*> [#uses=0]
|
||||
@block_aux_obstack = external global %struct.obstack ; <%struct.obstack*> [#uses=0]
|
||||
@__FUNCTION__.20301 = external constant [20 x i8] ; <[20 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.20316 = external constant [19 x i8] ; <[19 x i8]*> [#uses=0]
|
||||
@edge_aux_obstack = external global %struct.obstack ; <%struct.obstack*> [#uses=0]
|
||||
@stderr = external global %struct._IO_FILE* ; <%struct._IO_FILE**> [#uses=0]
|
||||
@__FUNCTION__.20463 = external constant [11 x i8] ; <[11 x i8]*> [#uses=0]
|
||||
@.str2 = external constant [7 x i8] ; <[7 x i8]*> [#uses=0]
|
||||
@.str3 = external constant [6 x i8] ; <[6 x i8]*> [#uses=0]
|
||||
@.str4 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
|
||||
@.str5 = external constant [11 x i8] ; <[11 x i8]*> [#uses=0]
|
||||
@.str6 = external constant [8 x i8] ; <[8 x i8]*> [#uses=0]
|
||||
@.str7 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
|
||||
@bitnames.20157 = external constant [13 x i8*] ; <[13 x i8*]*> [#uses=0]
|
||||
@.str8 = external constant [9 x i8] ; <[9 x i8]*> [#uses=0]
|
||||
@.str9 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
|
||||
@.str10 = external constant [7 x i8] ; <[7 x i8]*> [#uses=0]
|
||||
@.str11 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
|
||||
@.str12 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
|
||||
@.str13 = external constant [9 x i8] ; <[9 x i8]*> [#uses=0]
|
||||
@.str14 = external constant [13 x i8] ; <[13 x i8]*> [#uses=0]
|
||||
@.str15 = external constant [12 x i8] ; <[12 x i8]*> [#uses=0]
|
||||
@.str16 = external constant [8 x i8] ; <[8 x i8]*> [#uses=0]
|
||||
@.str17 = external constant [10 x i8] ; <[10 x i8]*> [#uses=0]
|
||||
@.str18 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
|
||||
@.str19 = external constant [6 x i8] ; <[6 x i8]*> [#uses=0]
|
||||
@.str20 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
|
||||
@.str21 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
|
||||
@.str22 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.19709 = external constant [20 x i8] ; <[20 x i8]*> [#uses=0]
|
||||
@.str23 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
|
||||
@.str24 = external constant [10 x i8] ; <[10 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.19813 = external constant [19 x i8] ; <[19 x i8]*> [#uses=0]
|
||||
@.str25 = external constant [7 x i8] ; <[7 x i8]*> [#uses=0]
|
||||
@.str26 = external constant [6 x i8] ; <[6 x i8]*> [#uses=0]
|
||||
@initialized.20241.b = external global i1 ; <i1*> [#uses=0]
|
||||
@__FUNCTION__.20244 = external constant [21 x i8] ; <[21 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.19601 = external constant [12 x i8] ; <[12 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.14571 = external constant [8 x i8] ; <[8 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.14535 = external constant [13 x i8] ; <[13 x i8]*> [#uses=0]
|
||||
@.str27 = external constant [28 x i8] ; <[28 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.14589 = external constant [8 x i8] ; <[8 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.19792 = external constant [12 x i8] ; <[12 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.19851 = external constant [19 x i8] ; <[19 x i8]*> [#uses=0]
|
||||
@profile_status = external global i32 ; <i32*> [#uses=0]
|
||||
@.str29 = external constant [46 x i8] ; <[46 x i8]*> [#uses=0]
|
||||
@.str30 = external constant [49 x i8] ; <[49 x i8]*> [#uses=0]
|
||||
@.str31 = external constant [54 x i8] ; <[54 x i8]*> [#uses=0]
|
||||
@.str32 = external constant [49 x i8] ; <[49 x i8]*> [#uses=1]
|
||||
@__FUNCTION__.19948 = external constant [15 x i8] ; <[15 x i8]*> [#uses=0]
|
||||
@reg_n_info = external global %struct.varray_head_tag* ; <%struct.varray_head_tag**> [#uses=0]
|
||||
@reload_completed = external global i32 ; <i32*> [#uses=0]
|
||||
@.str33 = external constant [15 x i8] ; <[15 x i8]*> [#uses=0]
|
||||
@.str34 = external constant [43 x i8] ; <[43 x i8]*> [#uses=0]
|
||||
@.str35 = external constant [13 x i8] ; <[13 x i8]*> [#uses=0]
|
||||
@.str36 = external constant [1 x i8] ; <[1 x i8]*> [#uses=0]
|
||||
@.str37 = external constant [2 x i8] ; <[2 x i8]*> [#uses=0]
|
||||
@.str38 = external constant [16 x i8] ; <[16 x i8]*> [#uses=0]
|
||||
@cfun = external global %struct.function* ; <%struct.function**> [#uses=0]
|
||||
@.str39 = external constant [14 x i8] ; <[14 x i8]*> [#uses=0]
|
||||
@.str40 = external constant [11 x i8] ; <[11 x i8]*> [#uses=0]
|
||||
@.str41 = external constant [20 x i8] ; <[20 x i8]*> [#uses=0]
|
||||
@.str42 = external constant [17 x i8] ; <[17 x i8]*> [#uses=0]
|
||||
@.str43 = external constant [19 x i8] ; <[19 x i8]*> [#uses=0]
|
||||
@mode_size = external global [48 x i8] ; <[48 x i8]*> [#uses=0]
|
||||
@target_flags = external global i32 ; <i32*> [#uses=0]
|
||||
@.str44 = external constant [11 x i8] ; <[11 x i8]*> [#uses=0]
|
||||
@reg_class_names = external global [0 x i8*] ; <[0 x i8*]*> [#uses=0]
|
||||
@.str45 = external constant [10 x i8] ; <[10 x i8]*> [#uses=0]
|
||||
@.str46 = external constant [13 x i8] ; <[13 x i8]*> [#uses=0]
|
||||
@.str47 = external constant [19 x i8] ; <[19 x i8]*> [#uses=0]
|
||||
@.str48 = external constant [12 x i8] ; <[12 x i8]*> [#uses=0]
|
||||
@.str49 = external constant [10 x i8] ; <[10 x i8]*> [#uses=0]
|
||||
@.str50 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
|
||||
@.str51 = external constant [29 x i8] ; <[29 x i8]*> [#uses=0]
|
||||
@.str52 = external constant [17 x i8] ; <[17 x i8]*> [#uses=0]
|
||||
@.str53 = external constant [19 x i8] ; <[19 x i8]*> [#uses=0]
|
||||
@.str54 = external constant [22 x i8] ; <[22 x i8]*> [#uses=0]
|
||||
@.str55 = external constant [10 x i8] ; <[10 x i8]*> [#uses=0]
|
||||
@.str56 = external constant [12 x i8] ; <[12 x i8]*> [#uses=0]
|
||||
@.str57 = external constant [26 x i8] ; <[26 x i8]*> [#uses=0]
|
||||
@.str58 = external constant [15 x i8] ; <[15 x i8]*> [#uses=0]
|
||||
@.str59 = external constant [14 x i8] ; <[14 x i8]*> [#uses=0]
|
||||
@.str60 = external constant [26 x i8] ; <[26 x i8]*> [#uses=0]
|
||||
@.str61 = external constant [24 x i8] ; <[24 x i8]*> [#uses=0]
|
||||
@initialized.20366.b = external global i1 ; <i1*> [#uses=0]
|
||||
@__FUNCTION__.20369 = external constant [20 x i8] ; <[20 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.20442 = external constant [19 x i8] ; <[19 x i8]*> [#uses=0]
|
||||
@bb_bitnames.20476 = external constant [6 x i8*] ; <[6 x i8*]*> [#uses=0]
|
||||
@.str62 = external constant [6 x i8] ; <[6 x i8]*> [#uses=0]
|
||||
@.str63 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
|
||||
@.str64 = external constant [10 x i8] ; <[10 x i8]*> [#uses=0]
|
||||
@.str65 = external constant [8 x i8] ; <[8 x i8]*> [#uses=0]
|
||||
@.str66 = external constant [17 x i8] ; <[17 x i8]*> [#uses=0]
|
||||
@.str67 = external constant [11 x i8] ; <[11 x i8]*> [#uses=0]
|
||||
@.str68 = external constant [15 x i8] ; <[15 x i8]*> [#uses=0]
|
||||
@.str69 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
|
||||
@.str70 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
|
||||
@__FUNCTION__.20520 = external constant [32 x i8] ; <[32 x i8]*> [#uses=0]
|
||||
@dump_file = external global %struct._IO_FILE* ; <%struct._IO_FILE**> [#uses=0]
|
||||
@.str71 = external constant [86 x i8] ; <[86 x i8]*> [#uses=0]
|
||||
@.str72 = external constant [94 x i8] ; <[94 x i8]*> [#uses=0]
|
||||
@reg_obstack = external global %struct.bitmap_obstack ; <%struct.bitmap_obstack*> [#uses=0]
|
||||
@first_edge_aux_obj = external global ptr ; <ptr> [#uses=0]
|
||||
@first_block_aux_obj = external global ptr ; <ptr> [#uses=0]
|
||||
@n_edges = external global i32 ; <ptr> [#uses=0]
|
||||
@ENTRY_BLOCK_PTR = external global ptr ; <ptr> [#uses=0]
|
||||
@EXIT_BLOCK_PTR = external global ptr ; <ptr> [#uses=0]
|
||||
@n_basic_blocks = external global i32 ; <ptr> [#uses=0]
|
||||
@.str = external constant [9 x i8] ; <ptr> [#uses=0]
|
||||
@rbi_pool = external global ptr ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.19643 = external constant [18 x i8] ; <ptr> [#uses=0]
|
||||
@.str1 = external constant [20 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.19670 = external constant [15 x i8] ; <ptr> [#uses=0]
|
||||
@basic_block_info = external global ptr ; <ptr> [#uses=0]
|
||||
@last_basic_block = external global i32 ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.19696 = external constant [14 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.20191 = external constant [20 x i8] ; <ptr> [#uses=0]
|
||||
@block_aux_obstack = external global %struct.obstack ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.20301 = external constant [20 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.20316 = external constant [19 x i8] ; <ptr> [#uses=0]
|
||||
@edge_aux_obstack = external global %struct.obstack ; <ptr> [#uses=0]
|
||||
@stderr = external global ptr ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.20463 = external constant [11 x i8] ; <ptr> [#uses=0]
|
||||
@.str2 = external constant [7 x i8] ; <ptr> [#uses=0]
|
||||
@.str3 = external constant [6 x i8] ; <ptr> [#uses=0]
|
||||
@.str4 = external constant [4 x i8] ; <ptr> [#uses=0]
|
||||
@.str5 = external constant [11 x i8] ; <ptr> [#uses=0]
|
||||
@.str6 = external constant [8 x i8] ; <ptr> [#uses=0]
|
||||
@.str7 = external constant [4 x i8] ; <ptr> [#uses=0]
|
||||
@bitnames.20157 = external constant [13 x ptr] ; <ptr> [#uses=0]
|
||||
@.str8 = external constant [9 x i8] ; <ptr> [#uses=0]
|
||||
@.str9 = external constant [3 x i8] ; <ptr> [#uses=0]
|
||||
@.str10 = external constant [7 x i8] ; <ptr> [#uses=0]
|
||||
@.str11 = external constant [3 x i8] ; <ptr> [#uses=0]
|
||||
@.str12 = external constant [5 x i8] ; <ptr> [#uses=0]
|
||||
@.str13 = external constant [9 x i8] ; <ptr> [#uses=0]
|
||||
@.str14 = external constant [13 x i8] ; <ptr> [#uses=0]
|
||||
@.str15 = external constant [12 x i8] ; <ptr> [#uses=0]
|
||||
@.str16 = external constant [8 x i8] ; <ptr> [#uses=0]
|
||||
@.str17 = external constant [10 x i8] ; <ptr> [#uses=0]
|
||||
@.str18 = external constant [5 x i8] ; <ptr> [#uses=0]
|
||||
@.str19 = external constant [6 x i8] ; <ptr> [#uses=0]
|
||||
@.str20 = external constant [5 x i8] ; <ptr> [#uses=0]
|
||||
@.str21 = external constant [3 x i8] ; <ptr> [#uses=0]
|
||||
@.str22 = external constant [3 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.19709 = external constant [20 x i8] ; <ptr> [#uses=0]
|
||||
@.str23 = external constant [5 x i8] ; <ptr> [#uses=0]
|
||||
@.str24 = external constant [10 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.19813 = external constant [19 x i8] ; <ptr> [#uses=0]
|
||||
@.str25 = external constant [7 x i8] ; <ptr> [#uses=0]
|
||||
@.str26 = external constant [6 x i8] ; <ptr> [#uses=0]
|
||||
@initialized.20241.b = external global i1 ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.20244 = external constant [21 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.19601 = external constant [12 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.14571 = external constant [8 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.14535 = external constant [13 x i8] ; <ptr> [#uses=0]
|
||||
@.str27 = external constant [28 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.14589 = external constant [8 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.19792 = external constant [12 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.19851 = external constant [19 x i8] ; <ptr> [#uses=0]
|
||||
@profile_status = external global i32 ; <ptr> [#uses=0]
|
||||
@.str29 = external constant [46 x i8] ; <ptr> [#uses=0]
|
||||
@.str30 = external constant [49 x i8] ; <ptr> [#uses=0]
|
||||
@.str31 = external constant [54 x i8] ; <ptr> [#uses=0]
|
||||
@.str32 = external constant [49 x i8] ; <ptr> [#uses=1]
|
||||
@__FUNCTION__.19948 = external constant [15 x i8] ; <ptr> [#uses=0]
|
||||
@reg_n_info = external global ptr ; <ptr> [#uses=0]
|
||||
@reload_completed = external global i32 ; <ptr> [#uses=0]
|
||||
@.str33 = external constant [15 x i8] ; <ptr> [#uses=0]
|
||||
@.str34 = external constant [43 x i8] ; <ptr> [#uses=0]
|
||||
@.str35 = external constant [13 x i8] ; <ptr> [#uses=0]
|
||||
@.str36 = external constant [1 x i8] ; <ptr> [#uses=0]
|
||||
@.str37 = external constant [2 x i8] ; <ptr> [#uses=0]
|
||||
@.str38 = external constant [16 x i8] ; <ptr> [#uses=0]
|
||||
@cfun = external global ptr ; <ptr> [#uses=0]
|
||||
@.str39 = external constant [14 x i8] ; <ptr> [#uses=0]
|
||||
@.str40 = external constant [11 x i8] ; <ptr> [#uses=0]
|
||||
@.str41 = external constant [20 x i8] ; <ptr> [#uses=0]
|
||||
@.str42 = external constant [17 x i8] ; <ptr> [#uses=0]
|
||||
@.str43 = external constant [19 x i8] ; <ptr> [#uses=0]
|
||||
@mode_size = external global [48 x i8] ; <ptr> [#uses=0]
|
||||
@target_flags = external global i32 ; <ptr> [#uses=0]
|
||||
@.str44 = external constant [11 x i8] ; <ptr> [#uses=0]
|
||||
@reg_class_names = external global [0 x ptr] ; <ptr> [#uses=0]
|
||||
@.str45 = external constant [10 x i8] ; <ptr> [#uses=0]
|
||||
@.str46 = external constant [13 x i8] ; <ptr> [#uses=0]
|
||||
@.str47 = external constant [19 x i8] ; <ptr> [#uses=0]
|
||||
@.str48 = external constant [12 x i8] ; <ptr> [#uses=0]
|
||||
@.str49 = external constant [10 x i8] ; <ptr> [#uses=0]
|
||||
@.str50 = external constant [3 x i8] ; <ptr> [#uses=0]
|
||||
@.str51 = external constant [29 x i8] ; <ptr> [#uses=0]
|
||||
@.str52 = external constant [17 x i8] ; <ptr> [#uses=0]
|
||||
@.str53 = external constant [19 x i8] ; <ptr> [#uses=0]
|
||||
@.str54 = external constant [22 x i8] ; <ptr> [#uses=0]
|
||||
@.str55 = external constant [10 x i8] ; <ptr> [#uses=0]
|
||||
@.str56 = external constant [12 x i8] ; <ptr> [#uses=0]
|
||||
@.str57 = external constant [26 x i8] ; <ptr> [#uses=0]
|
||||
@.str58 = external constant [15 x i8] ; <ptr> [#uses=0]
|
||||
@.str59 = external constant [14 x i8] ; <ptr> [#uses=0]
|
||||
@.str60 = external constant [26 x i8] ; <ptr> [#uses=0]
|
||||
@.str61 = external constant [24 x i8] ; <ptr> [#uses=0]
|
||||
@initialized.20366.b = external global i1 ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.20369 = external constant [20 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.20442 = external constant [19 x i8] ; <ptr> [#uses=0]
|
||||
@bb_bitnames.20476 = external constant [6 x ptr] ; <ptr> [#uses=0]
|
||||
@.str62 = external constant [6 x i8] ; <ptr> [#uses=0]
|
||||
@.str63 = external constant [4 x i8] ; <ptr> [#uses=0]
|
||||
@.str64 = external constant [10 x i8] ; <ptr> [#uses=0]
|
||||
@.str65 = external constant [8 x i8] ; <ptr> [#uses=0]
|
||||
@.str66 = external constant [17 x i8] ; <ptr> [#uses=0]
|
||||
@.str67 = external constant [11 x i8] ; <ptr> [#uses=0]
|
||||
@.str68 = external constant [15 x i8] ; <ptr> [#uses=0]
|
||||
@.str69 = external constant [3 x i8] ; <ptr> [#uses=0]
|
||||
@.str70 = external constant [3 x i8] ; <ptr> [#uses=0]
|
||||
@__FUNCTION__.20520 = external constant [32 x i8] ; <ptr> [#uses=0]
|
||||
@dump_file = external global ptr ; <ptr> [#uses=0]
|
||||
@.str71 = external constant [86 x i8] ; <ptr> [#uses=0]
|
||||
@.str72 = external constant [94 x i8] ; <ptr> [#uses=0]
|
||||
@reg_obstack = external global %struct.bitmap_obstack ; <ptr> [#uses=0]
|
||||
|
||||
declare void @init_flow()
|
||||
|
||||
declare i8* @ggc_alloc_cleared_stat(i64)
|
||||
declare ptr @ggc_alloc_cleared_stat(i64)
|
||||
|
||||
declare fastcc void @free_edge(%struct.edge_def*)
|
||||
declare fastcc void @free_edge(ptr)
|
||||
|
||||
declare void @ggc_free(i8*)
|
||||
declare void @ggc_free(ptr)
|
||||
|
||||
declare %struct.basic_block_def* @alloc_block()
|
||||
declare ptr @alloc_block()
|
||||
|
||||
declare void @alloc_rbi_pool()
|
||||
|
||||
declare %struct.alloc_pool_def* @create_alloc_pool(i8*, i64, i64)
|
||||
declare ptr @create_alloc_pool(ptr, i64, i64)
|
||||
|
||||
declare void @free_rbi_pool()
|
||||
|
||||
declare void @free_alloc_pool(%struct.alloc_pool_def*)
|
||||
declare void @free_alloc_pool(ptr)
|
||||
|
||||
declare void @initialize_bb_rbi(%struct.basic_block_def*)
|
||||
declare void @initialize_bb_rbi(ptr)
|
||||
|
||||
declare void @fancy_abort(i8*, i32, i8*)
|
||||
declare void @fancy_abort(ptr, i32, ptr)
|
||||
|
||||
declare i8* @pool_alloc(%struct.alloc_pool_def*)
|
||||
declare ptr @pool_alloc(ptr)
|
||||
|
||||
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1)
|
||||
declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1)
|
||||
|
||||
declare void @link_block(%struct.basic_block_def*, %struct.basic_block_def*)
|
||||
declare void @link_block(ptr, ptr)
|
||||
|
||||
declare void @unlink_block(%struct.basic_block_def*)
|
||||
declare void @unlink_block(ptr)
|
||||
|
||||
declare void @compact_blocks()
|
||||
|
||||
declare void @varray_check_failed(%struct.varray_head_tag*, i64, i8*, i32, i8*)
|
||||
declare void @varray_check_failed(ptr, i64, ptr, i32, ptr)
|
||||
|
||||
declare void @expunge_block(%struct.basic_block_def*)
|
||||
declare void @expunge_block(ptr)
|
||||
|
||||
declare void @clear_bb_flags()
|
||||
|
||||
declare void @alloc_aux_for_block(%struct.basic_block_def*, i32)
|
||||
declare void @alloc_aux_for_block(ptr, i32)
|
||||
|
||||
declare void @_obstack_newchunk(%struct.obstack*, i32)
|
||||
declare void @_obstack_newchunk(ptr, i32)
|
||||
|
||||
declare void @clear_aux_for_blocks()
|
||||
|
||||
declare void @free_aux_for_blocks()
|
||||
|
||||
declare void @obstack_free(%struct.obstack*, i8*)
|
||||
declare void @obstack_free(ptr, ptr)
|
||||
|
||||
declare void @alloc_aux_for_edge(%struct.edge_def*, i32)
|
||||
declare void @alloc_aux_for_edge(ptr, i32)
|
||||
|
||||
declare void @debug_bb(%struct.basic_block_def*)
|
||||
declare void @debug_bb(ptr)
|
||||
|
||||
declare void @dump_bb(%struct.basic_block_def*, %struct._IO_FILE*, i32)
|
||||
declare void @dump_bb(ptr, ptr, i32)
|
||||
|
||||
declare %struct.basic_block_def* @debug_bb_n(i32)
|
||||
declare ptr @debug_bb_n(i32)
|
||||
|
||||
declare void @dump_edge_info(%struct._IO_FILE*, %struct.edge_def*, i32)
|
||||
declare void @dump_edge_info(ptr, ptr, i32)
|
||||
|
||||
declare i32 @fputs_unlocked(i8* noalias , %struct._IO_FILE* noalias )
|
||||
declare i32 @fputs_unlocked(ptr noalias , ptr noalias )
|
||||
|
||||
declare i32 @fprintf(%struct._IO_FILE* noalias , i8* noalias , ...)
|
||||
declare i32 @fprintf(ptr noalias , ptr noalias , ...)
|
||||
|
||||
declare i64 @fwrite(i8*, i64, i64, i8*)
|
||||
declare i64 @fwrite(ptr, i64, i64, ptr)
|
||||
|
||||
declare i32 @__overflow(%struct._IO_FILE*, i32)
|
||||
declare i32 @__overflow(ptr, i32)
|
||||
|
||||
declare %struct.edge_def* @unchecked_make_edge(%struct.basic_block_def*, %struct.basic_block_def*, i32)
|
||||
declare ptr @unchecked_make_edge(ptr, ptr, i32)
|
||||
|
||||
declare i8* @vec_gc_p_reserve(i8*, i32)
|
||||
declare ptr @vec_gc_p_reserve(ptr, i32)
|
||||
|
||||
declare void @vec_assert_fail(i8*, i8*, i8*, i32, i8*)
|
||||
declare void @vec_assert_fail(ptr, ptr, ptr, i32, ptr)
|
||||
|
||||
declare void @execute_on_growing_pred(%struct.edge_def*)
|
||||
declare void @execute_on_growing_pred(ptr)
|
||||
|
||||
declare %struct.edge_def* @make_edge(%struct.basic_block_def*, %struct.basic_block_def*, i32)
|
||||
declare ptr @make_edge(ptr, ptr, i32)
|
||||
|
||||
declare %struct.edge_def* @find_edge(%struct.basic_block_def*, %struct.basic_block_def*)
|
||||
declare ptr @find_edge(ptr, ptr)
|
||||
|
||||
declare %struct.edge_def* @make_single_succ_edge(%struct.basic_block_def*, %struct.basic_block_def*, i32)
|
||||
declare ptr @make_single_succ_edge(ptr, ptr, i32)
|
||||
|
||||
declare %struct.edge_def* @cached_make_edge(%struct.simple_bitmap_def**, %struct.basic_block_def*, %struct.basic_block_def*, i32)
|
||||
declare ptr @cached_make_edge(ptr, ptr, ptr, i32)
|
||||
|
||||
declare void @redirect_edge_succ(%struct.edge_def*, %struct.basic_block_def*)
|
||||
declare void @redirect_edge_succ(ptr, ptr)
|
||||
|
||||
declare void @execute_on_shrinking_pred(%struct.edge_def*)
|
||||
declare void @execute_on_shrinking_pred(ptr)
|
||||
|
||||
declare void @alloc_aux_for_blocks(i32)
|
||||
|
||||
declare i8* @xmalloc(i64)
|
||||
declare ptr @xmalloc(i64)
|
||||
|
||||
declare i32 @_obstack_begin(%struct.obstack*, i32, i32, i8* (i64)*, void (i8*)*)
|
||||
declare i32 @_obstack_begin(ptr, i32, i32, ptr, ptr)
|
||||
|
||||
declare void @free(i8*)
|
||||
declare void @free(ptr)
|
||||
|
||||
declare void @clear_edges()
|
||||
|
||||
declare void @remove_edge(%struct.edge_def*)
|
||||
declare void @remove_edge(ptr)
|
||||
|
||||
declare %struct.edge_def* @redirect_edge_succ_nodup(%struct.edge_def*, %struct.basic_block_def*)
|
||||
declare ptr @redirect_edge_succ_nodup(ptr, ptr)
|
||||
|
||||
declare void @redirect_edge_pred(%struct.edge_def*, %struct.basic_block_def*)
|
||||
declare void @redirect_edge_pred(ptr, ptr)
|
||||
|
||||
define void @check_bb_profile(%struct.basic_block_def* %bb, %struct._IO_FILE* %file) {
|
||||
define void @check_bb_profile(ptr %bb, ptr %file) {
|
||||
entry:
|
||||
br i1 false, label %cond_false759.preheader, label %cond_false149.preheader
|
||||
|
||||
|
@ -354,7 +354,7 @@ cond_true1071: ; preds = %cond_next1056
|
|||
ret void
|
||||
|
||||
cond_next1150: ; preds = %cond_next1056
|
||||
%tmp1156 = icmp eq %struct.edge_def* null, null ; <i1> [#uses=1]
|
||||
%tmp1156 = icmp eq ptr null, null ; <i1> [#uses=1]
|
||||
br i1 %tmp1156, label %bb1159, label %bb929
|
||||
|
||||
bb1159: ; preds = %cond_next1150
|
||||
|
@ -362,28 +362,28 @@ bb1159: ; preds = %cond_next1150
|
|||
|
||||
cond_true1169: ; preds = %bb1159
|
||||
%tmp11741175 = trunc i64 %lsum.11225.0 to i32 ; <i32> [#uses=1]
|
||||
%tmp1178 = tail call i32 (%struct._IO_FILE* , i8* , ...) @fprintf( %struct._IO_FILE* noalias %file , i8* getelementptr ([49 x i8], [49 x i8]* @.str32, i32 0, i64 0) , i32 %tmp11741175, i32 0 ) ; <i32> [#uses=0]
|
||||
%tmp1178 = tail call i32 (ptr , ptr , ...) @fprintf( ptr noalias %file , ptr @.str32 , i32 %tmp11741175, i32 0 ) ; <i32> [#uses=0]
|
||||
ret void
|
||||
|
||||
UnifiedReturnBlock: ; preds = %bb1159
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @dump_flow_info(%struct._IO_FILE*)
|
||||
declare void @dump_flow_info(ptr)
|
||||
|
||||
declare i32 @max_reg_num()
|
||||
|
||||
declare void @rtl_check_failed_flag(i8*, %struct.rtx_def*, i8*, i32, i8*)
|
||||
declare void @rtl_check_failed_flag(ptr, ptr, ptr, i32, ptr)
|
||||
|
||||
declare i32 @reg_preferred_class(i32)
|
||||
|
||||
declare i32 @reg_alternate_class(i32)
|
||||
|
||||
declare zeroext i8 @maybe_hot_bb_p(%struct.basic_block_def*)
|
||||
declare zeroext i8 @maybe_hot_bb_p(ptr)
|
||||
|
||||
declare zeroext i8 @probably_never_executed_bb_p(%struct.basic_block_def*)
|
||||
declare zeroext i8 @probably_never_executed_bb_p(ptr)
|
||||
|
||||
declare void @dump_regset(%struct.bitmap_head_def*, %struct._IO_FILE*)
|
||||
declare void @dump_regset(ptr, ptr)
|
||||
|
||||
declare void @debug_flow_info()
|
||||
|
||||
|
@ -393,8 +393,8 @@ declare void @clear_aux_for_edges()
|
|||
|
||||
declare void @free_aux_for_edges()
|
||||
|
||||
declare void @brief_dump_cfg(%struct._IO_FILE*)
|
||||
declare void @brief_dump_cfg(ptr)
|
||||
|
||||
declare i32 @fputc(i32, i8*)
|
||||
declare i32 @fputc(i32, ptr)
|
||||
|
||||
declare void @update_bb_profile_for_threading(%struct.basic_block_def*, i32, i64, %struct.edge_def*)
|
||||
declare void @update_bb_profile_for_threading(ptr, i32, i64, ptr)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
; CHECK-NOT: PTR
|
||||
; CHECK: {{$}}
|
||||
|
||||
define signext i16 @t(i32* %bitptr, i32* %source, i8** %byteptr, i32 %scale, i32 %round) {
|
||||
define signext i16 @t(ptr %bitptr, ptr %source, ptr %byteptr, i32 %scale, i32 %round) {
|
||||
entry:
|
||||
br label %bb
|
||||
|
||||
|
@ -14,8 +14,8 @@ bb: ; preds = %cond_next391, %entry
|
|||
br i1 false, label %cond_true, label %cond_next127
|
||||
|
||||
cond_true: ; preds = %bb
|
||||
store i8* null, i8** %byteptr, align 4
|
||||
store i8* null, i8** %byteptr, align 4
|
||||
store ptr null, ptr %byteptr, align 4
|
||||
store ptr null, ptr %byteptr, align 4
|
||||
br label %cond_next127
|
||||
|
||||
cond_next127: ; preds = %cond_true, %bb
|
||||
|
@ -25,7 +25,7 @@ cond_next127: ; preds = %cond_true, %bb
|
|||
%tmp154155156 = sext i16 %tmp154155 to i32 ; <i32> [#uses=1]
|
||||
%tmp158 = xor i32 %tmp154155156, %tmp153 ; <i32> [#uses=1]
|
||||
%tmp160 = or i32 %tmp158, %cnt.0 ; <i32> [#uses=1]
|
||||
%tmp171 = load i32, i32* %bitptr, align 4 ; <i32> [#uses=1]
|
||||
%tmp171 = load i32, ptr %bitptr, align 4 ; <i32> [#uses=1]
|
||||
%tmp180181 = sext i16 0 to i32 ; <i32> [#uses=3]
|
||||
%tmp183 = add i32 %tmp160, 1 ; <i32> [#uses=1]
|
||||
br i1 false, label %cond_true188, label %cond_next245
|
||||
|
@ -43,8 +43,8 @@ cond_next245: ; preds = %cond_next127
|
|||
br i1 %tmp264, label %cond_true267, label %cond_next391
|
||||
|
||||
cond_true267: ; preds = %cond_next245
|
||||
store i8* null, i8** %byteptr, align 4
|
||||
store i8* null, i8** %byteptr, align 4
|
||||
store ptr null, ptr %byteptr, align 4
|
||||
store ptr null, ptr %byteptr, align 4
|
||||
br i1 false, label %cond_true289, label %cond_next327
|
||||
|
||||
cond_true289: ; preds = %cond_true267
|
||||
|
@ -54,12 +54,12 @@ cond_next327: ; preds = %cond_true267
|
|||
br i1 false, label %cond_true343, label %cond_next385
|
||||
|
||||
cond_true343: ; preds = %cond_next327
|
||||
%tmp345 = load i8*, i8** %byteptr, align 4 ; <i8*> [#uses=1]
|
||||
store i8* null, i8** %byteptr, align 4
|
||||
%tmp345 = load ptr, ptr %byteptr, align 4 ; <ptr> [#uses=1]
|
||||
store ptr null, ptr %byteptr, align 4
|
||||
br i1 false, label %cond_next385, label %cond_true352
|
||||
|
||||
cond_true352: ; preds = %cond_true343
|
||||
store i8* %tmp345, i8** %byteptr, align 4
|
||||
store ptr %tmp345, ptr %byteptr, align 4
|
||||
br i1 false, label %cond_true364, label %cond_next385
|
||||
|
||||
cond_true364: ; preds = %cond_true352
|
||||
|
@ -69,8 +69,8 @@ cond_next385: ; preds = %cond_true352, %cond_true343, %cond_next327
|
|||
br label %cond_next391
|
||||
|
||||
cond_next391: ; preds = %cond_next385, %cond_next245
|
||||
%tmp393 = load i32, i32* %source, align 4 ; <i32> [#uses=1]
|
||||
%tmp395 = load i32, i32* %bitptr, align 4 ; <i32> [#uses=2]
|
||||
%tmp393 = load i32, ptr %source, align 4 ; <i32> [#uses=1]
|
||||
%tmp395 = load i32, ptr %bitptr, align 4 ; <i32> [#uses=2]
|
||||
%tmp396 = shl i32 %tmp393, %tmp395 ; <i32> [#uses=1]
|
||||
%tmp398 = sub i32 32, %tmp256 ; <i32> [#uses=1]
|
||||
%tmp405 = lshr i32 %tmp396, 31 ; <i32> [#uses=1]
|
||||
|
@ -79,7 +79,7 @@ cond_next391: ; preds = %cond_next385, %cond_next245
|
|||
%tmp411 = sub i32 0, %tmp409 ; <i32> [#uses=1]
|
||||
%tmp422445 = add i32 %tmp254, %tmp183 ; <i32> [#uses=2]
|
||||
%tmp426447 = add i32 %tmp395, %tmp256 ; <i32> [#uses=1]
|
||||
store i32 %tmp426447, i32* %bitptr, align 4
|
||||
store i32 %tmp426447, ptr %bitptr, align 4
|
||||
%tmp429448 = icmp ult i32 %tmp422445, 63 ; <i1> [#uses=1]
|
||||
br i1 %tmp429448, label %bb, label %UnifiedReturnBlock
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
define i32 @kernel_init(i8* %unused) {
|
||||
define i32 @kernel_init(ptr %unused) {
|
||||
entry:
|
||||
call void asm sideeffect "foo ${0:q}", "=*imr"( i64* elementtype( i64) null )
|
||||
call void asm sideeffect "foo ${0:q}", "=*imr"( ptr elementtype( i64) null )
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ define signext i16 @t() {
|
|||
; CHECK-NEXT: xorl %eax, %eax
|
||||
; CHECK-NEXT: retl
|
||||
entry:
|
||||
%tmp180 = load i16, i16* null, align 2 ; <i16> [#uses=3]
|
||||
%tmp180 = load i16, ptr null, align 2 ; <i16> [#uses=3]
|
||||
%tmp180181 = sext i16 %tmp180 to i32 ; <i32> [#uses=1]
|
||||
%tmp185 = icmp slt i16 %tmp180, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp185, label %cond_true188, label %cond_next245
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
; RUN: llc < %s -mtriple=i686--
|
||||
|
||||
define i32 @unique(i8* %full, i32 %p, i32 %len, i32 %mode, i32 %verbos, i32 %flags) {
|
||||
define i32 @unique(ptr %full, i32 %p, i32 %len, i32 %mode, i32 %verbos, i32 %flags) {
|
||||
entry:
|
||||
br i1 false, label %cond_true15, label %cond_next107
|
||||
|
||||
|
@ -19,7 +19,7 @@ bb76.split: ; preds = %bb69.outer.split.split, %bb69.us208
|
|||
bb69.outer: ; preds = %bb76.split, %bb98.preheader
|
||||
%from.0.reg2mem.0.ph.rec = phi i32 [ %tmp75.rec, %bb76.split ], [ 0, %bb98.preheader ] ; <i32> [#uses=1]
|
||||
%tmp75.rec = add i32 %from.0.reg2mem.0.ph.rec, 1 ; <i32> [#uses=2]
|
||||
%tmp75 = getelementptr i8, i8* null, i32 %tmp75.rec ; <i8*> [#uses=6]
|
||||
%tmp75 = getelementptr i8, ptr null, i32 %tmp75.rec ; <ptr> [#uses=6]
|
||||
br i1 false, label %bb69.us208, label %bb69.outer.split.split
|
||||
|
||||
bb69.us208: ; preds = %bb69.outer
|
||||
|
@ -37,7 +37,7 @@ bb69.outer.split.split: ; preds = %bb69.outer
|
|||
]
|
||||
|
||||
bb89: ; preds = %bb69.outer.split.split, %bb69.outer.split.split, %bb69.outer.split.split, %bb69.us208, %bb69.us208, %bb69.us208
|
||||
%tmp75.lcssa189 = phi i8* [ %tmp75, %bb69.us208 ], [ %tmp75, %bb69.us208 ], [ %tmp75, %bb69.us208 ], [ %tmp75, %bb69.outer.split.split ], [ %tmp75, %bb69.outer.split.split ], [ %tmp75, %bb69.outer.split.split ] ; <i8*> [#uses=0]
|
||||
%tmp75.lcssa189 = phi ptr [ %tmp75, %bb69.us208 ], [ %tmp75, %bb69.us208 ], [ %tmp75, %bb69.us208 ], [ %tmp75, %bb69.outer.split.split ], [ %tmp75, %bb69.outer.split.split ], [ %tmp75, %bb69.outer.split.split ] ; <ptr> [#uses=0]
|
||||
ret i32 0
|
||||
|
||||
bb103: ; preds = %bb76.split, %bb98.preheader
|
||||
|
|
|
@ -5,78 +5,78 @@ target triple = "i686-apple-darwin8"
|
|||
|
||||
define <1 x i64> @a(<2 x i64> %__A) {
|
||||
entry:
|
||||
%__A_addr = alloca <2 x i64> ; <<2 x i64>*> [#uses=2]
|
||||
%retval = alloca <1 x i64>, align 8 ; <<1 x i64>*> [#uses=3]
|
||||
%__A_addr = alloca <2 x i64> ; <ptr> [#uses=2]
|
||||
%retval = alloca <1 x i64>, align 8 ; <ptr> [#uses=3]
|
||||
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
|
||||
store <2 x i64> %__A, <2 x i64>* %__A_addr
|
||||
%tmp = load <2 x i64>, <2 x i64>* %__A_addr, align 16 ; <<2 x i64>> [#uses=1]
|
||||
store <2 x i64> %__A, ptr %__A_addr
|
||||
%tmp = load <2 x i64>, ptr %__A_addr, align 16 ; <<2 x i64>> [#uses=1]
|
||||
%tmp1 = bitcast <2 x i64> %tmp to <2 x i64> ; <<2 x i64>> [#uses=1]
|
||||
%tmp2 = extractelement <2 x i64> %tmp1, i32 0 ; <i64> [#uses=1]
|
||||
%tmp3 = bitcast i64 %tmp2 to <1 x i64> ; <<1 x i64>> [#uses=1]
|
||||
store <1 x i64> %tmp3, <1 x i64>* %retval, align 8
|
||||
%tmp4 = load <1 x i64>, <1 x i64>* %retval, align 8 ; <<1 x i64>> [#uses=0]
|
||||
store <1 x i64> %tmp3, ptr %retval, align 8
|
||||
%tmp4 = load <1 x i64>, ptr %retval, align 8 ; <<1 x i64>> [#uses=0]
|
||||
br label %return
|
||||
|
||||
return: ; preds = %entry
|
||||
%retval5 = load <1 x i64>, <1 x i64>* %retval ; <<1 x i64>> [#uses=1]
|
||||
%retval5 = load <1 x i64>, ptr %retval ; <<1 x i64>> [#uses=1]
|
||||
ret <1 x i64> %retval5
|
||||
}
|
||||
|
||||
define <1 x i64> @b(<2 x i64> %__A) {
|
||||
entry:
|
||||
%__A_addr = alloca <2 x i64> ; <<2 x i64>*> [#uses=2]
|
||||
%retval = alloca <1 x i64>, align 8 ; <<1 x i64>*> [#uses=3]
|
||||
%__A_addr = alloca <2 x i64> ; <ptr> [#uses=2]
|
||||
%retval = alloca <1 x i64>, align 8 ; <ptr> [#uses=3]
|
||||
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
|
||||
store <2 x i64> %__A, <2 x i64>* %__A_addr
|
||||
%tmp = load <2 x i64>, <2 x i64>* %__A_addr, align 16 ; <<2 x i64>> [#uses=1]
|
||||
store <2 x i64> %__A, ptr %__A_addr
|
||||
%tmp = load <2 x i64>, ptr %__A_addr, align 16 ; <<2 x i64>> [#uses=1]
|
||||
%tmp1 = bitcast <2 x i64> %tmp to <2 x i64> ; <<2 x i64>> [#uses=1]
|
||||
%tmp2 = extractelement <2 x i64> %tmp1, i32 1 ; <i64> [#uses=1]
|
||||
%tmp3 = bitcast i64 %tmp2 to <1 x i64> ; <<1 x i64>> [#uses=1]
|
||||
store <1 x i64> %tmp3, <1 x i64>* %retval, align 8
|
||||
%tmp4 = load <1 x i64>, <1 x i64>* %retval, align 8 ; <<1 x i64>> [#uses=0]
|
||||
store <1 x i64> %tmp3, ptr %retval, align 8
|
||||
%tmp4 = load <1 x i64>, ptr %retval, align 8 ; <<1 x i64>> [#uses=0]
|
||||
br label %return
|
||||
|
||||
return: ; preds = %entry
|
||||
%retval5 = load <1 x i64>, <1 x i64>* %retval ; <<1 x i64>> [#uses=1]
|
||||
%retval5 = load <1 x i64>, ptr %retval ; <<1 x i64>> [#uses=1]
|
||||
ret <1 x i64> %retval5
|
||||
}
|
||||
|
||||
define i64 @c(<2 x i64> %__A) {
|
||||
entry:
|
||||
%__A_addr = alloca <2 x i64> ; <<2 x i64>*> [#uses=2]
|
||||
%retval = alloca i64, align 8 ; <i64*> [#uses=2]
|
||||
%tmp = alloca i64, align 8 ; <i64*> [#uses=2]
|
||||
%__A_addr = alloca <2 x i64> ; <ptr> [#uses=2]
|
||||
%retval = alloca i64, align 8 ; <ptr> [#uses=2]
|
||||
%tmp = alloca i64, align 8 ; <ptr> [#uses=2]
|
||||
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
|
||||
store <2 x i64> %__A, <2 x i64>* %__A_addr
|
||||
%tmp1 = load <2 x i64>, <2 x i64>* %__A_addr, align 16 ; <<2 x i64>> [#uses=1]
|
||||
store <2 x i64> %__A, ptr %__A_addr
|
||||
%tmp1 = load <2 x i64>, ptr %__A_addr, align 16 ; <<2 x i64>> [#uses=1]
|
||||
%tmp2 = bitcast <2 x i64> %tmp1 to <2 x i64> ; <<2 x i64>> [#uses=1]
|
||||
%tmp3 = extractelement <2 x i64> %tmp2, i32 0 ; <i64> [#uses=1]
|
||||
store i64 %tmp3, i64* %tmp, align 8
|
||||
%tmp4 = load i64, i64* %tmp, align 8 ; <i64> [#uses=1]
|
||||
store i64 %tmp4, i64* %retval, align 8
|
||||
store i64 %tmp3, ptr %tmp, align 8
|
||||
%tmp4 = load i64, ptr %tmp, align 8 ; <i64> [#uses=1]
|
||||
store i64 %tmp4, ptr %retval, align 8
|
||||
br label %return
|
||||
|
||||
return: ; preds = %entry
|
||||
%retval5 = load i64, i64* %retval ; <i64> [#uses=1]
|
||||
%retval5 = load i64, ptr %retval ; <i64> [#uses=1]
|
||||
ret i64 %retval5
|
||||
}
|
||||
|
||||
define i64 @d(<2 x i64> %__A) {
|
||||
entry:
|
||||
%__A_addr = alloca <2 x i64> ; <<2 x i64>*> [#uses=2]
|
||||
%retval = alloca i64, align 8 ; <i64*> [#uses=2]
|
||||
%tmp = alloca i64, align 8 ; <i64*> [#uses=2]
|
||||
%__A_addr = alloca <2 x i64> ; <ptr> [#uses=2]
|
||||
%retval = alloca i64, align 8 ; <ptr> [#uses=2]
|
||||
%tmp = alloca i64, align 8 ; <ptr> [#uses=2]
|
||||
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
|
||||
store <2 x i64> %__A, <2 x i64>* %__A_addr
|
||||
%tmp1 = load <2 x i64>, <2 x i64>* %__A_addr, align 16 ; <<2 x i64>> [#uses=1]
|
||||
store <2 x i64> %__A, ptr %__A_addr
|
||||
%tmp1 = load <2 x i64>, ptr %__A_addr, align 16 ; <<2 x i64>> [#uses=1]
|
||||
%tmp2 = bitcast <2 x i64> %tmp1 to <2 x i64> ; <<2 x i64>> [#uses=1]
|
||||
%tmp3 = extractelement <2 x i64> %tmp2, i32 1 ; <i64> [#uses=1]
|
||||
store i64 %tmp3, i64* %tmp, align 8
|
||||
%tmp4 = load i64, i64* %tmp, align 8 ; <i64> [#uses=1]
|
||||
store i64 %tmp4, i64* %retval, align 8
|
||||
store i64 %tmp3, ptr %tmp, align 8
|
||||
%tmp4 = load i64, ptr %tmp, align 8 ; <i64> [#uses=1]
|
||||
store i64 %tmp4, ptr %retval, align 8
|
||||
br label %return
|
||||
|
||||
return: ; preds = %entry
|
||||
%retval5 = load i64, i64* %retval ; <i64> [#uses=1]
|
||||
%retval5 = load i64, ptr %retval ; <i64> [#uses=1]
|
||||
ret i64 %retval5
|
||||
}
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
%"struct.K::JL" = type <{ i8 }>
|
||||
%struct.jv = type { i64 }
|
||||
|
||||
declare fastcc i64 @f(i32, %"struct.K::JL"*, i8*, i8*, %struct.jv*)
|
||||
declare fastcc i64 @f(i32, ptr, ptr, ptr, ptr)
|
||||
|
||||
define void @t(%"struct.K::JL"* %obj, i8* %name, i8* %sig, %struct.jv* %args) {
|
||||
define void @t(ptr %obj, ptr %name, ptr %sig, ptr %args) {
|
||||
entry:
|
||||
%tmp5 = tail call fastcc i64 @f( i32 1, %"struct.K::JL"* %obj, i8* %name, i8* %sig, %struct.jv* %args ) ; <i64> [#uses=0]
|
||||
%tmp5 = tail call fastcc i64 @f( i32 1, ptr %obj, ptr %name, ptr %sig, ptr %args ) ; <i64> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -4,6 +4,6 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
|
|||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
define void @yield() {
|
||||
%tmp9 = call i64 asm sideeffect "xchgb ${0:b},$1", "=q,*m,0,~{dirflag},~{fpsr},~{flags},~{memory}"( i64* elementtype( i64) null, i64 0 ) ; <i64>
|
||||
%tmp9 = call i64 asm sideeffect "xchgb ${0:b},$1", "=q,*m,0,~{dirflag},~{fpsr},~{flags},~{memory}"( ptr elementtype( i64) null, i64 0 ) ; <i64>
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu
|
||||
; PR1766
|
||||
|
||||
%struct.dentry = type { %struct.dentry_operations* }
|
||||
%struct.dentry_operations = type { i32 (%struct.dentry*, %struct.qstr*)* }
|
||||
%struct.qstr = type { i32, i32, i8* }
|
||||
%struct.dentry = type { ptr }
|
||||
%struct.dentry_operations = type { ptr }
|
||||
%struct.qstr = type { i32, i32, ptr }
|
||||
|
||||
define %struct.dentry* @d_hash_and_lookup(%struct.dentry* %dir, %struct.qstr* %name) {
|
||||
define ptr @d_hash_and_lookup(ptr %dir, ptr %name) {
|
||||
entry:
|
||||
br i1 false, label %bb37, label %bb
|
||||
|
||||
bb: ; preds = %bb, %entry
|
||||
%name8.0.reg2mem.0.rec = phi i64 [ %indvar.next, %bb ], [ 0, %entry ] ; <i64> [#uses=1]
|
||||
%hash.0.reg2mem.0 = phi i64 [ %tmp27, %bb ], [ 0, %entry ] ; <i64> [#uses=1]
|
||||
%tmp13 = load i8, i8* null, align 1 ; <i8> [#uses=1]
|
||||
%tmp13 = load i8, ptr null, align 1 ; <i8> [#uses=1]
|
||||
%tmp1314 = zext i8 %tmp13 to i64 ; <i64> [#uses=1]
|
||||
%tmp25 = lshr i64 %tmp1314, 4 ; <i64> [#uses=1]
|
||||
%tmp22 = add i64 %tmp25, %hash.0.reg2mem.0 ; <i64> [#uses=1]
|
||||
|
@ -28,10 +28,10 @@ bb37.loopexit: ; preds = %bb
|
|||
|
||||
bb37: ; preds = %bb37.loopexit, %entry
|
||||
%hash.0.reg2mem.1 = phi i32 [ %phitmp, %bb37.loopexit ], [ 0, %entry ] ; <i32> [#uses=1]
|
||||
store i32 %hash.0.reg2mem.1, i32* null, align 8
|
||||
%tmp75 = tail call i32 null( %struct.dentry* %dir, %struct.qstr* %name ) ; <i32> [#uses=0]
|
||||
%tmp84 = tail call i32 (...) @d_lookup( %struct.dentry* %dir, %struct.qstr* %name ) ; <i32> [#uses=0]
|
||||
ret %struct.dentry* null
|
||||
store i32 %hash.0.reg2mem.1, ptr null, align 8
|
||||
%tmp75 = tail call i32 null( ptr %dir, ptr %name ) ; <i32> [#uses=0]
|
||||
%tmp84 = tail call i32 (...) @d_lookup( ptr %dir, ptr %name ) ; <i32> [#uses=0]
|
||||
ret ptr null
|
||||
}
|
||||
|
||||
declare i32 @d_lookup(...)
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
; RUN: llc -no-integrated-as < %s -mtriple=x86_64-unknown-linux-gnu
|
||||
; PR1767
|
||||
|
||||
define void @xor_sse_2(i64 %bytes, i64* %p1, i64* %p2) {
|
||||
define void @xor_sse_2(i64 %bytes, ptr %p1, ptr %p2) {
|
||||
entry:
|
||||
%p2_addr = alloca i64* ; <i64**> [#uses=2]
|
||||
%lines = alloca i32 ; <i32*> [#uses=2]
|
||||
store i64* %p2, i64** %p2_addr, align 8
|
||||
%p2_addr = alloca ptr ; <ptr> [#uses=2]
|
||||
%lines = alloca i32 ; <ptr> [#uses=2]
|
||||
store ptr %p2, ptr %p2_addr, align 8
|
||||
%tmp1 = lshr i64 %bytes, 8 ; <i64> [#uses=1]
|
||||
%tmp12 = trunc i64 %tmp1 to i32 ; <i32> [#uses=2]
|
||||
store i32 %tmp12, i32* %lines, align 4
|
||||
%tmp6 = call i64* asm sideeffect "foo",
|
||||
"=r,=*r,=*r,r,0,1,2,~{dirflag},~{fpsr},~{flags},~{memory}"(i64** elementtype(i64*) %p2_addr, i32* elementtype(i32) %lines, i64 256, i64* %p1, i64* %p2, i32 %tmp12 ) ; <i64*> [#uses=0]
|
||||
store i32 %tmp12, ptr %lines, align 4
|
||||
%tmp6 = call ptr asm sideeffect "foo",
|
||||
"=r,=*r,=*r,r,0,1,2,~{dirflag},~{fpsr},~{flags},~{memory}"(ptr elementtype(ptr) %p2_addr, ptr elementtype(i32) %lines, i64 256, ptr %p1, ptr %p2, i32 %tmp12 ) ; <ptr> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
; PR1761
|
||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
||||
target triple = "x86_64-pc-linux"
|
||||
@str = internal constant [12 x i8] c"init/main.c\00" ; <[12 x i8]*> [#uses=1]
|
||||
@str = internal constant [12 x i8] c"init/main.c\00" ; <ptr> [#uses=1]
|
||||
|
||||
; CHECK: {{foo str$}}
|
||||
|
||||
define i32 @unknown_bootoption() {
|
||||
entry:
|
||||
tail call void asm sideeffect "foo ${0:c}\0A", "i,~{dirflag},~{fpsr},~{flags}"( i8* getelementptr ([12 x i8], [12 x i8]* @str, i32 0, i64 0) )
|
||||
tail call void asm sideeffect "foo ${0:c}\0A", "i,~{dirflag},~{fpsr},~{flags}"( ptr @str )
|
||||
ret i32 undef
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-- -mattr=+sse2 | FileCheck %s
|
||||
|
||||
define float @foo(i32* %x, float* %y, i32 %c) nounwind {
|
||||
define float @foo(ptr %x, ptr %y, i32 %c) nounwind {
|
||||
; CHECK-LABEL: foo:
|
||||
; CHECK: # %bb.0: # %entry
|
||||
; CHECK-NEXT: pushl %esi
|
||||
|
@ -40,11 +40,11 @@ entry:
|
|||
bb18: ; preds = %bb18, %entry
|
||||
%i.0.reg2mem.0 = phi i32 [ 0, %entry ], [ %tmp17, %bb18 ] ; <i32> [#uses=3]
|
||||
%res.0.reg2mem.0 = phi float [ 0.000000e+00, %entry ], [ %tmp14, %bb18 ] ; <float> [#uses=1]
|
||||
%tmp3 = getelementptr i32, i32* %x, i32 %i.0.reg2mem.0 ; <i32*> [#uses=1]
|
||||
%tmp4 = load i32, i32* %tmp3, align 4 ; <i32> [#uses=1]
|
||||
%tmp3 = getelementptr i32, ptr %x, i32 %i.0.reg2mem.0 ; <ptr> [#uses=1]
|
||||
%tmp4 = load i32, ptr %tmp3, align 4 ; <i32> [#uses=1]
|
||||
%tmp45 = sitofp i32 %tmp4 to float ; <float> [#uses=1]
|
||||
%tmp8 = getelementptr float, float* %y, i32 %i.0.reg2mem.0 ; <float*> [#uses=1]
|
||||
%tmp9 = load float, float* %tmp8, align 4 ; <float> [#uses=1]
|
||||
%tmp8 = getelementptr float, ptr %y, i32 %i.0.reg2mem.0 ; <ptr> [#uses=1]
|
||||
%tmp9 = load float, ptr %tmp8, align 4 ; <float> [#uses=1]
|
||||
%tmp11 = fmul float %tmp9, %tmp45 ; <float> [#uses=1]
|
||||
%tmp14 = fadd float %tmp11, %res.0.reg2mem.0 ; <float> [#uses=2]
|
||||
%tmp17 = add i32 %i.0.reg2mem.0, 1 ; <i32> [#uses=2]
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
|
||||
|
||||
%struct.eebb = type { %struct.eebb*, i16* }
|
||||
%struct.hf = type { %struct.hf*, i16*, i8*, i32, i32, %struct.eebb*, i32, i32, i8*, i8*, i8*, i8*, i16*, i8*, i16*, %struct.ri, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [30 x i32], %struct.eebb, i32, i8* }
|
||||
%struct.foo_data = type { i32, i32, i32, i32*, i32, i32, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i16*, i16*, i16*, i16*, i32, i32, i32, %struct.ri*, i8*, %struct.hf* }
|
||||
%struct.ri = type { %struct.ri*, i32, i8*, i16*, i32*, i32 }
|
||||
%struct.eebb = type { ptr, ptr }
|
||||
%struct.hf = type { ptr, ptr, ptr, i32, i32, ptr, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ri, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [30 x i32], %struct.eebb, i32, ptr }
|
||||
%struct.foo_data = type { i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, ptr, ptr }
|
||||
%struct.ri = type { ptr, i32, ptr, ptr, ptr, i32 }
|
||||
|
||||
define fastcc i32 @foo(i16* %eptr, i8* %ecode, %struct.foo_data* %md, i32 %ims) {
|
||||
define fastcc i32 @foo(ptr %eptr, ptr %ecode, ptr %md, i32 %ims) {
|
||||
; CHECK-LABEL: foo:
|
||||
; CHECK: # %bb.0: # %entry
|
||||
; CHECK-NEXT: cmpl $0, 0
|
||||
|
@ -21,7 +21,7 @@ define fastcc i32 @foo(i16* %eptr, i8* %ecode, %struct.foo_data* %md, i32 %ims)
|
|||
; CHECK-NEXT: xorl %eax, %eax
|
||||
; CHECK-NEXT: retl
|
||||
entry:
|
||||
%tmp36 = load i32, i32* null, align 4 ; <i32> [#uses=1]
|
||||
%tmp36 = load i32, ptr null, align 4 ; <i32> [#uses=1]
|
||||
%tmp37 = icmp ult i32 0, %tmp36 ; <i1> [#uses=1]
|
||||
br i1 %tmp37, label %cond_next79, label %cond_true
|
||||
|
||||
|
@ -29,7 +29,7 @@ cond_true: ; preds = %entry
|
|||
ret i32 0
|
||||
|
||||
cond_next79: ; preds = %entry
|
||||
%tmp85 = load i32, i32* null, align 4 ; <i32> [#uses=1]
|
||||
%tmp85 = load i32, ptr null, align 4 ; <i32> [#uses=1]
|
||||
%tmp86 = icmp ult i32 0, %tmp85 ; <i1> [#uses=1]
|
||||
br i1 %tmp86, label %cond_next130, label %cond_true89
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
; Increment in loop bb.i28.i adjusted to 2, to prevent loop reversal from
|
||||
; kicking in.
|
||||
|
||||
declare fastcc void @rdft(i32, i32, double*, i32*, double*)
|
||||
declare fastcc void @rdft(i32, i32, ptr, ptr, ptr)
|
||||
|
||||
define fastcc void @mp_sqrt(i32 %n, i32 %radix, i32* %in, i32* %out, i32* %tmp1, i32* %tmp2, i32 %nfft, double* %tmp1fft, double* %tmp2fft, i32* %ip, double* %w) nounwind {
|
||||
define fastcc void @mp_sqrt(i32 %n, i32 %radix, ptr %in, ptr %out, ptr %tmp1, ptr %tmp2, i32 %nfft, ptr %tmp1fft, ptr %tmp2fft, ptr %ip, ptr %w) nounwind {
|
||||
; CHECK-LABEL: mp_sqrt:
|
||||
; CHECK: # %bb.0: # %entry
|
||||
; CHECK-NEXT: pushl %ebp
|
||||
|
@ -144,7 +144,7 @@ cond_true29.i: ; preds = %cond_next.i
|
|||
ret void
|
||||
|
||||
cond_next36.i: ; preds = %cond_next.i
|
||||
store i32 %tmp22.i, i32* null, align 4
|
||||
store i32 %tmp22.i, ptr null, align 4
|
||||
%tmp8.i14.i = select i1 %foo, i32 1, i32 0 ; <i32> [#uses=1]
|
||||
br label %bb.i28.i
|
||||
|
||||
|
@ -164,36 +164,36 @@ bb.i28.i: ; preds = %bb.i28.i, %cond_next36.i
|
|||
|
||||
mp_unexp_d2mp.exit29.i: ; preds = %bb.i28.i
|
||||
%tmp46.i = sub i32 0, %tmp22.i ; <i32> [#uses=1]
|
||||
store i32 %tmp46.i, i32* null, align 4
|
||||
store i32 %tmp46.i, ptr null, align 4
|
||||
br i1 %exitcond40.i, label %bb.i.i, label %mp_sqrt_init.exit
|
||||
|
||||
bb.i.i: ; preds = %bb.i.i, %mp_unexp_d2mp.exit29.i
|
||||
br label %bb.i.i
|
||||
|
||||
mp_sqrt_init.exit: ; preds = %mp_unexp_d2mp.exit29.i
|
||||
tail call fastcc void @mp_mul_csqu( i32 0, double* %tmp1fft )
|
||||
tail call fastcc void @rdft( i32 0, i32 -1, double* null, i32* %ip, double* %w )
|
||||
tail call fastcc void @mp_mul_d2i( i32 0, i32 %radix, i32 0, double* %tmp1fft, i32* %tmp2 )
|
||||
tail call fastcc void @mp_mul_csqu( i32 0, ptr %tmp1fft )
|
||||
tail call fastcc void @rdft( i32 0, i32 -1, ptr null, ptr %ip, ptr %w )
|
||||
tail call fastcc void @mp_mul_d2i( i32 0, i32 %radix, i32 0, ptr %tmp1fft, ptr %tmp2 )
|
||||
br i1 %exitcond40.i, label %cond_false.i, label %cond_true36.i
|
||||
|
||||
cond_true36.i: ; preds = %mp_sqrt_init.exit
|
||||
ret void
|
||||
|
||||
cond_false.i: ; preds = %mp_sqrt_init.exit
|
||||
tail call fastcc void @mp_round( i32 0, i32 %radix, i32 0, i32* %out )
|
||||
tail call fastcc void @mp_add( i32 0, i32 %radix, i32* %tmp1, i32* %tmp2, i32* %tmp1 )
|
||||
tail call fastcc void @mp_sub( i32 0, i32 %radix, i32* %in, i32* %tmp2, i32* %tmp2 )
|
||||
tail call fastcc void @mp_round( i32 0, i32 %radix, i32 0, i32* %tmp1 )
|
||||
tail call fastcc void @mp_mul_d2i( i32 0, i32 %radix, i32 %tmp7.i3, double* %tmp2fft, i32* %tmp2 )
|
||||
tail call fastcc void @mp_round( i32 0, i32 %radix, i32 0, ptr %out )
|
||||
tail call fastcc void @mp_add( i32 0, i32 %radix, ptr %tmp1, ptr %tmp2, ptr %tmp1 )
|
||||
tail call fastcc void @mp_sub( i32 0, i32 %radix, ptr %in, ptr %tmp2, ptr %tmp2 )
|
||||
tail call fastcc void @mp_round( i32 0, i32 %radix, i32 0, ptr %tmp1 )
|
||||
tail call fastcc void @mp_mul_d2i( i32 0, i32 %radix, i32 %tmp7.i3, ptr %tmp2fft, ptr %tmp2 )
|
||||
ret void
|
||||
}
|
||||
|
||||
declare fastcc void @mp_add(i32, i32, i32*, i32*, i32*)
|
||||
declare fastcc void @mp_add(i32, i32, ptr, ptr, ptr)
|
||||
|
||||
declare fastcc void @mp_sub(i32, i32, i32*, i32*, i32*)
|
||||
declare fastcc void @mp_sub(i32, i32, ptr, ptr, ptr)
|
||||
|
||||
declare fastcc void @mp_round(i32, i32, i32, i32*)
|
||||
declare fastcc void @mp_round(i32, i32, i32, ptr)
|
||||
|
||||
declare fastcc void @mp_mul_csqu(i32, double*)
|
||||
declare fastcc void @mp_mul_csqu(i32, ptr)
|
||||
|
||||
declare fastcc void @mp_mul_d2i(i32, i32, i32, double*, i32*)
|
||||
declare fastcc void @mp_mul_d2i(i32, i32, i32, ptr, ptr)
|
||||
|
|
|
@ -2,27 +2,26 @@
|
|||
; PR1799
|
||||
|
||||
%struct.c34007g__designated___XUB = type { i32, i32, i32, i32 }
|
||||
%struct.c34007g__pkg__parent = type { i32*, %struct.c34007g__designated___XUB* }
|
||||
%struct.c34007g__pkg__parent = type { ptr, ptr }
|
||||
|
||||
define void @_ada_c34007g() {
|
||||
entry:
|
||||
%x8 = alloca %struct.c34007g__pkg__parent, align 8 ; <%struct.c34007g__pkg__parent*> [#uses=2]
|
||||
%x8 = alloca %struct.c34007g__pkg__parent, align 8 ; <ptr> [#uses=2]
|
||||
br i1 true, label %bb1271, label %bb848
|
||||
|
||||
bb848: ; preds = %entry
|
||||
ret void
|
||||
|
||||
bb1271: ; preds = %bb898
|
||||
%tmp1272 = getelementptr %struct.c34007g__pkg__parent, %struct.c34007g__pkg__parent* %x8, i32 0, i32 0 ; <i32**> [#uses=1]
|
||||
%x82167 = bitcast %struct.c34007g__pkg__parent* %x8 to i64* ; <i64*> [#uses=1]
|
||||
%tmp1272 = getelementptr %struct.c34007g__pkg__parent, ptr %x8, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
br i1 true, label %bb4668, label %bb848
|
||||
|
||||
bb4668: ; preds = %bb4648
|
||||
%tmp5464 = load i64, i64* %x82167, align 8 ; <i64> [#uses=1]
|
||||
%tmp5464 = load i64, ptr %x8, align 8 ; <i64> [#uses=1]
|
||||
%tmp5467 = icmp ne i64 0, %tmp5464 ; <i1> [#uses=1]
|
||||
%tmp5470 = load i32*, i32** %tmp1272, align 8 ; <i32*> [#uses=1]
|
||||
%tmp5471 = icmp eq i32* %tmp5470, null ; <i1> [#uses=1]
|
||||
call fastcc void @c34007g__pkg__create.311( %struct.c34007g__pkg__parent* null, i32 7, i32 9, i32 2, i32 4, i32 1 )
|
||||
%tmp5470 = load ptr, ptr %tmp1272, align 8 ; <ptr> [#uses=1]
|
||||
%tmp5471 = icmp eq ptr %tmp5470, null ; <i1> [#uses=1]
|
||||
call fastcc void @c34007g__pkg__create.311( ptr null, i32 7, i32 9, i32 2, i32 4, i32 1 )
|
||||
%tmp5475 = or i1 %tmp5471, %tmp5467 ; <i1> [#uses=1]
|
||||
%tmp5497 = or i1 %tmp5475, false ; <i1> [#uses=1]
|
||||
br i1 %tmp5497, label %bb848, label %bb5507
|
||||
|
@ -32,4 +31,4 @@ bb5507: ; preds = %bb4668
|
|||
|
||||
}
|
||||
|
||||
declare fastcc void @c34007g__pkg__create.311(%struct.c34007g__pkg__parent*, i32, i32, i32, i32, i32)
|
||||
declare fastcc void @c34007g__pkg__create.311(ptr, i32, i32, i32, i32, i32)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
; PR1872
|
||||
|
||||
%struct.c34007g__designated___XUB = type { i32, i32, i32, i32 }
|
||||
%struct.c34007g__pkg__parent = type { i32*, %struct.c34007g__designated___XUB* }
|
||||
%struct.c34007g__pkg__parent = type { ptr, ptr }
|
||||
|
||||
define void @_ada_c34007g() {
|
||||
; CHECK-LABEL: _ada_c34007g:
|
||||
|
@ -30,16 +30,15 @@ define void @_ada_c34007g() {
|
|||
; CHECK-NEXT: .cfi_def_cfa %esp, 4
|
||||
; CHECK-NEXT: retl
|
||||
entry:
|
||||
%x8 = alloca %struct.c34007g__pkg__parent, align 8 ; <%struct.c34007g__pkg__parent*> [#uses=2]
|
||||
%tmp1272 = getelementptr %struct.c34007g__pkg__parent, %struct.c34007g__pkg__parent* %x8, i32 0, i32 0 ; <i32**> [#uses=1]
|
||||
%x82167 = bitcast %struct.c34007g__pkg__parent* %x8 to i64* ; <i64*> [#uses=1]
|
||||
%x8 = alloca %struct.c34007g__pkg__parent, align 8 ; <ptr> [#uses=2]
|
||||
%tmp1272 = getelementptr %struct.c34007g__pkg__parent, ptr %x8, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
br i1 true, label %bb4668, label %bb848
|
||||
|
||||
bb4668: ; preds = %bb4648
|
||||
%tmp5464 = load i64, i64* %x82167, align 8 ; <i64> [#uses=1]
|
||||
%tmp5464 = load i64, ptr %x8, align 8 ; <i64> [#uses=1]
|
||||
%tmp5467 = icmp ne i64 0, %tmp5464 ; <i1> [#uses=1]
|
||||
%tmp5470 = load i32*, i32** %tmp1272, align 8 ; <i32*> [#uses=1]
|
||||
%tmp5471 = icmp eq i32* %tmp5470, null ; <i1> [#uses=1]
|
||||
%tmp5470 = load ptr, ptr %tmp1272, align 8 ; <ptr> [#uses=1]
|
||||
%tmp5471 = icmp eq ptr %tmp5470, null ; <i1> [#uses=1]
|
||||
%tmp5475 = or i1 %tmp5471, %tmp5467 ; <i1> [#uses=1]
|
||||
%tmp5497 = or i1 %tmp5475, false ; <i1> [#uses=1]
|
||||
br i1 %tmp5497, label %bb848, label %bb5507
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
; CHECK-NOT: cmp
|
||||
; CHECK: cmov
|
||||
|
||||
%struct.indexentry = type { i32, i8*, i8*, i8*, i8*, i8* }
|
||||
%struct.indexentry = type { i32, ptr, ptr, ptr, ptr, ptr }
|
||||
|
||||
define i32 @_bfd_stab_section_find_nearest_line(i32 %offset, i1 %cond) nounwind {
|
||||
entry:
|
||||
|
@ -20,14 +20,14 @@ bb917: ; preds = %entry
|
|||
|
||||
bb951: ; preds = %bb986, %entry
|
||||
%tmp955 = sdiv i32 %offset, 2 ; <i32> [#uses=3]
|
||||
%tmp961 = getelementptr %struct.indexentry, %struct.indexentry* null, i32 %tmp955, i32 0 ; <i32*> [#uses=1]
|
||||
%tmp961 = getelementptr %struct.indexentry, ptr null, i32 %tmp955, i32 0 ; <ptr> [#uses=1]
|
||||
br i1 %cond, label %bb986, label %bb967
|
||||
|
||||
bb967: ; preds = %bb951
|
||||
ret i32 0
|
||||
|
||||
bb986: ; preds = %bb951
|
||||
%tmp993 = load i32, i32* %tmp961, align 4 ; <i32> [#uses=1]
|
||||
%tmp993 = load i32, ptr %tmp961, align 4 ; <i32> [#uses=1]
|
||||
%tmp995 = icmp ugt i32 %tmp993, %tmp910 ; <i1> [#uses=2]
|
||||
%tmp1002 = add i32 %tmp955, 1 ; <i32> [#uses=1]
|
||||
%low.0 = select i1 %tmp995, i32 0, i32 %tmp1002 ; <i32> [#uses=1]
|
||||
|
|
|
@ -1,34 +1,34 @@
|
|||
; RUN: llc < %s -mtriple=i686-- -mattr=+sse2 -regalloc=fast -optimize-regalloc=0
|
||||
|
||||
define void @SolveCubic(double %a, double %b, double %c, double %d, i32* %solutions, double* %x) {
|
||||
define void @SolveCubic(double %a, double %b, double %c, double %d, ptr %solutions, ptr %x) {
|
||||
entry:
|
||||
%tmp71 = load x86_fp80, x86_fp80* null, align 16 ; <x86_fp80> [#uses=1]
|
||||
%tmp71 = load x86_fp80, ptr null, align 16 ; <x86_fp80> [#uses=1]
|
||||
%tmp72 = fdiv x86_fp80 %tmp71, 0xKC000C000000000000000 ; <x86_fp80> [#uses=1]
|
||||
%tmp73 = fadd x86_fp80 0xK00000000000000000000, %tmp72 ; <x86_fp80> [#uses=1]
|
||||
%tmp7374 = fptrunc x86_fp80 %tmp73 to double ; <double> [#uses=1]
|
||||
store double %tmp7374, double* null, align 8
|
||||
%tmp81 = load double, double* null, align 8 ; <double> [#uses=1]
|
||||
store double %tmp7374, ptr null, align 8
|
||||
%tmp81 = load double, ptr null, align 8 ; <double> [#uses=1]
|
||||
%tmp82 = fadd double %tmp81, 0x401921FB54442D18 ; <double> [#uses=1]
|
||||
%tmp83 = fdiv double %tmp82, 3.000000e+00 ; <double> [#uses=1]
|
||||
%tmp84 = call double @cos( double %tmp83 ) ; <double> [#uses=1]
|
||||
%tmp85 = fmul double 0.000000e+00, %tmp84 ; <double> [#uses=1]
|
||||
%tmp8586 = fpext double %tmp85 to x86_fp80 ; <x86_fp80> [#uses=1]
|
||||
%tmp87 = load x86_fp80, x86_fp80* null, align 16 ; <x86_fp80> [#uses=1]
|
||||
%tmp87 = load x86_fp80, ptr null, align 16 ; <x86_fp80> [#uses=1]
|
||||
%tmp88 = fdiv x86_fp80 %tmp87, 0xKC000C000000000000000 ; <x86_fp80> [#uses=1]
|
||||
%tmp89 = fadd x86_fp80 %tmp8586, %tmp88 ; <x86_fp80> [#uses=1]
|
||||
%tmp8990 = fptrunc x86_fp80 %tmp89 to double ; <double> [#uses=1]
|
||||
store double %tmp8990, double* null, align 8
|
||||
%tmp97 = load double, double* null, align 8 ; <double> [#uses=1]
|
||||
store double %tmp8990, ptr null, align 8
|
||||
%tmp97 = load double, ptr null, align 8 ; <double> [#uses=1]
|
||||
%tmp98 = fadd double %tmp97, 0x402921FB54442D18 ; <double> [#uses=1]
|
||||
%tmp99 = fdiv double %tmp98, 3.000000e+00 ; <double> [#uses=1]
|
||||
%tmp100 = call double @cos( double %tmp99 ) ; <double> [#uses=1]
|
||||
%tmp101 = fmul double 0.000000e+00, %tmp100 ; <double> [#uses=1]
|
||||
%tmp101102 = fpext double %tmp101 to x86_fp80 ; <x86_fp80> [#uses=1]
|
||||
%tmp103 = load x86_fp80, x86_fp80* null, align 16 ; <x86_fp80> [#uses=1]
|
||||
%tmp103 = load x86_fp80, ptr null, align 16 ; <x86_fp80> [#uses=1]
|
||||
%tmp104 = fdiv x86_fp80 %tmp103, 0xKC000C000000000000000 ; <x86_fp80> [#uses=1]
|
||||
%tmp105 = fadd x86_fp80 %tmp101102, %tmp104 ; <x86_fp80> [#uses=1]
|
||||
%tmp105106 = fptrunc x86_fp80 %tmp105 to double ; <double> [#uses=1]
|
||||
store double %tmp105106, double* null, align 8
|
||||
store double %tmp105106, ptr null, align 8
|
||||
ret void
|
||||
}
|
||||
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
; RUN: llc < %s -mtriple=i686-- | not grep IMPLICIT_DEF
|
||||
|
||||
%struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, i32, i32 }
|
||||
%struct.node_t = type { ptr, ptr, ptr, ptr, ptr, i32, i32 }
|
||||
|
||||
define void @localize_local_bb19_bb(%struct.node_t** %cur_node) {
|
||||
define void @localize_local_bb19_bb(ptr %cur_node) {
|
||||
newFuncRoot:
|
||||
%tmp1 = load %struct.node_t*, %struct.node_t** %cur_node, align 4 ; <%struct.node_t*> [#uses=1]
|
||||
%tmp2 = getelementptr %struct.node_t, %struct.node_t* %tmp1, i32 0, i32 4 ; <double**> [#uses=1]
|
||||
%tmp3 = load double*, double** %tmp2, align 4 ; <double*> [#uses=1]
|
||||
%tmp4 = load %struct.node_t*, %struct.node_t** %cur_node, align 4 ; <%struct.node_t*> [#uses=1]
|
||||
%tmp5 = getelementptr %struct.node_t, %struct.node_t* %tmp4, i32 0, i32 4 ; <double**> [#uses=1]
|
||||
store double* %tmp3, double** %tmp5, align 4
|
||||
%tmp6 = load %struct.node_t*, %struct.node_t** %cur_node, align 4 ; <%struct.node_t*> [#uses=1]
|
||||
%tmp7 = getelementptr %struct.node_t, %struct.node_t* %tmp6, i32 0, i32 3 ; <double***> [#uses=1]
|
||||
%tmp8 = load double**, double*** %tmp7, align 4 ; <double**> [#uses=1]
|
||||
%tmp9 = load %struct.node_t*, %struct.node_t** %cur_node, align 4 ; <%struct.node_t*> [#uses=1]
|
||||
%tmp10 = getelementptr %struct.node_t, %struct.node_t* %tmp9, i32 0, i32 3 ; <double***> [#uses=1]
|
||||
store double** %tmp8, double*** %tmp10, align 4
|
||||
%tmp11 = load %struct.node_t*, %struct.node_t** %cur_node, align 4 ; <%struct.node_t*> [#uses=1]
|
||||
%tmp12 = getelementptr %struct.node_t, %struct.node_t* %tmp11, i32 0, i32 0 ; <double**> [#uses=1]
|
||||
%tmp13 = load double*, double** %tmp12, align 4 ; <double*> [#uses=1]
|
||||
%tmp14 = load %struct.node_t*, %struct.node_t** %cur_node, align 4 ; <%struct.node_t*> [#uses=1]
|
||||
%tmp15 = getelementptr %struct.node_t, %struct.node_t* %tmp14, i32 0, i32 0 ; <double**> [#uses=1]
|
||||
store double* %tmp13, double** %tmp15, align 4
|
||||
%tmp16 = load %struct.node_t*, %struct.node_t** %cur_node, align 4 ; <%struct.node_t*> [#uses=1]
|
||||
%tmp17 = getelementptr %struct.node_t, %struct.node_t* %tmp16, i32 0, i32 1 ; <%struct.node_t**> [#uses=1]
|
||||
%tmp18 = load %struct.node_t*, %struct.node_t** %tmp17, align 4 ; <%struct.node_t*> [#uses=1]
|
||||
store %struct.node_t* %tmp18, %struct.node_t** %cur_node, align 4
|
||||
%tmp1 = load ptr, ptr %cur_node, align 4 ; <ptr> [#uses=1]
|
||||
%tmp2 = getelementptr %struct.node_t, ptr %tmp1, i32 0, i32 4 ; <ptr> [#uses=1]
|
||||
%tmp3 = load ptr, ptr %tmp2, align 4 ; <ptr> [#uses=1]
|
||||
%tmp4 = load ptr, ptr %cur_node, align 4 ; <ptr> [#uses=1]
|
||||
%tmp5 = getelementptr %struct.node_t, ptr %tmp4, i32 0, i32 4 ; <ptr> [#uses=1]
|
||||
store ptr %tmp3, ptr %tmp5, align 4
|
||||
%tmp6 = load ptr, ptr %cur_node, align 4 ; <ptr> [#uses=1]
|
||||
%tmp7 = getelementptr %struct.node_t, ptr %tmp6, i32 0, i32 3 ; <ptr> [#uses=1]
|
||||
%tmp8 = load ptr, ptr %tmp7, align 4 ; <ptr> [#uses=1]
|
||||
%tmp9 = load ptr, ptr %cur_node, align 4 ; <ptr> [#uses=1]
|
||||
%tmp10 = getelementptr %struct.node_t, ptr %tmp9, i32 0, i32 3 ; <ptr> [#uses=1]
|
||||
store ptr %tmp8, ptr %tmp10, align 4
|
||||
%tmp11 = load ptr, ptr %cur_node, align 4 ; <ptr> [#uses=1]
|
||||
%tmp12 = getelementptr %struct.node_t, ptr %tmp11, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp13 = load ptr, ptr %tmp12, align 4 ; <ptr> [#uses=1]
|
||||
%tmp14 = load ptr, ptr %cur_node, align 4 ; <ptr> [#uses=1]
|
||||
%tmp15 = getelementptr %struct.node_t, ptr %tmp14, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
store ptr %tmp13, ptr %tmp15, align 4
|
||||
%tmp16 = load ptr, ptr %cur_node, align 4 ; <ptr> [#uses=1]
|
||||
%tmp17 = getelementptr %struct.node_t, ptr %tmp16, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp18 = load ptr, ptr %tmp17, align 4 ; <ptr> [#uses=1]
|
||||
store ptr %tmp18, ptr %cur_node, align 4
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
; RUN: llc < %s -mtriple=i686--
|
||||
; PR1975
|
||||
|
||||
@nodes = external dso_local global i64 ; <i64*> [#uses=2]
|
||||
@nodes = external dso_local global i64 ; <ptr> [#uses=2]
|
||||
|
||||
define fastcc i32 @ab(i32 %alpha, i32 %beta) nounwind {
|
||||
entry:
|
||||
%tmp1 = load i64, i64* @nodes, align 8 ; <i64> [#uses=1]
|
||||
%tmp1 = load i64, ptr @nodes, align 8 ; <i64> [#uses=1]
|
||||
%tmp2 = add i64 %tmp1, 1 ; <i64> [#uses=1]
|
||||
store i64 %tmp2, i64* @nodes, align 8
|
||||
store i64 %tmp2, ptr @nodes, align 8
|
||||
ret i32 0
|
||||
}
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
; RUN: llc < %s -mtriple=i686-- -mattr=+sse2 | FileCheck %s
|
||||
|
||||
; CHECK: xorps {{.*}}{{LCPI0_0|__xmm@}}
|
||||
define void @casin({ double, double }* sret({ double, double }) %agg.result, double %z.0, double %z.1) nounwind {
|
||||
define void @casin(ptr sret({ double, double }) %agg.result, double %z.0, double %z.1) nounwind {
|
||||
entry:
|
||||
%memtmp = alloca { double, double }, align 8 ; <{ double, double }*> [#uses=3]
|
||||
%memtmp = alloca { double, double }, align 8 ; <ptr> [#uses=3]
|
||||
%tmp4 = fsub double -0.000000e+00, %z.1 ; <double> [#uses=1]
|
||||
call void @casinh( { double, double }* sret({ double, double }) %memtmp, double %tmp4, double %z.0 ) nounwind
|
||||
%tmp19 = getelementptr { double, double }, { double, double }* %memtmp, i32 0, i32 0 ; <double*> [#uses=1]
|
||||
%tmp20 = load double, double* %tmp19, align 8 ; <double> [#uses=1]
|
||||
%tmp22 = getelementptr { double, double }, { double, double }* %memtmp, i32 0, i32 1 ; <double*> [#uses=1]
|
||||
%tmp23 = load double, double* %tmp22, align 8 ; <double> [#uses=1]
|
||||
call void @casinh( ptr sret({ double, double }) %memtmp, double %tmp4, double %z.0 ) nounwind
|
||||
%tmp19 = getelementptr { double, double }, ptr %memtmp, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp20 = load double, ptr %tmp19, align 8 ; <double> [#uses=1]
|
||||
%tmp22 = getelementptr { double, double }, ptr %memtmp, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp23 = load double, ptr %tmp22, align 8 ; <double> [#uses=1]
|
||||
%tmp32 = fsub double -0.000000e+00, %tmp20 ; <double> [#uses=1]
|
||||
%tmp37 = getelementptr { double, double }, { double, double }* %agg.result, i32 0, i32 0 ; <double*> [#uses=1]
|
||||
store double %tmp23, double* %tmp37, align 8
|
||||
%tmp40 = getelementptr { double, double }, { double, double }* %agg.result, i32 0, i32 1 ; <double*> [#uses=1]
|
||||
store double %tmp32, double* %tmp40, align 8
|
||||
%tmp37 = getelementptr { double, double }, ptr %agg.result, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
store double %tmp23, ptr %tmp37, align 8
|
||||
%tmp40 = getelementptr { double, double }, ptr %agg.result, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
store double %tmp32, ptr %tmp40, align 8
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @casinh({ double, double }* sret({ double, double }) , double, double) nounwind
|
||||
declare void @casinh(ptr sret({ double, double }) , double, double) nounwind
|
||||
|
|
|
@ -2,17 +2,17 @@
|
|||
; RUN: llc < %s -mtriple=i686-- -mcpu=yonah -stats 2>&1 | grep "Number of block tails merged" | grep 16
|
||||
; PR1909
|
||||
|
||||
@.str = internal constant [48 x i8] c"transformed bounds: (%.2f, %.2f), (%.2f, %.2f)\0A\00" ; <[48 x i8]*> [#uses=1]
|
||||
@.str = internal constant [48 x i8] c"transformed bounds: (%.2f, %.2f), (%.2f, %.2f)\0A\00" ; <ptr> [#uses=1]
|
||||
|
||||
define void @minmax(float* %result) nounwind optsize {
|
||||
define void @minmax(ptr %result) nounwind optsize {
|
||||
entry:
|
||||
%tmp2 = load float, float* %result, align 4 ; <float> [#uses=6]
|
||||
%tmp4 = getelementptr float, float* %result, i32 2 ; <float*> [#uses=5]
|
||||
%tmp5 = load float, float* %tmp4, align 4 ; <float> [#uses=10]
|
||||
%tmp7 = getelementptr float, float* %result, i32 4 ; <float*> [#uses=5]
|
||||
%tmp8 = load float, float* %tmp7, align 4 ; <float> [#uses=8]
|
||||
%tmp10 = getelementptr float, float* %result, i32 6 ; <float*> [#uses=3]
|
||||
%tmp11 = load float, float* %tmp10, align 4 ; <float> [#uses=8]
|
||||
%tmp2 = load float, ptr %result, align 4 ; <float> [#uses=6]
|
||||
%tmp4 = getelementptr float, ptr %result, i32 2 ; <ptr> [#uses=5]
|
||||
%tmp5 = load float, ptr %tmp4, align 4 ; <float> [#uses=10]
|
||||
%tmp7 = getelementptr float, ptr %result, i32 4 ; <ptr> [#uses=5]
|
||||
%tmp8 = load float, ptr %tmp7, align 4 ; <float> [#uses=8]
|
||||
%tmp10 = getelementptr float, ptr %result, i32 6 ; <ptr> [#uses=3]
|
||||
%tmp11 = load float, ptr %tmp10, align 4 ; <float> [#uses=8]
|
||||
%tmp12 = fcmp olt float %tmp8, %tmp11 ; <i1> [#uses=5]
|
||||
br i1 %tmp12, label %bb, label %bb21
|
||||
|
||||
|
@ -45,21 +45,21 @@ bb59: ; preds = %bb50, %bb40, %bb26
|
|||
bb72: ; preds = %bb59
|
||||
%tmp82475 = fcmp olt float %tmp5, %tmp8 ; <i1> [#uses=2]
|
||||
%brmerge786 = or i1 %tmp82475, %tmp12 ; <i1> [#uses=1]
|
||||
%tmp4.mux787 = select i1 %tmp82475, float* %tmp4, float* %tmp7 ; <float*> [#uses=1]
|
||||
%tmp4.mux787 = select i1 %tmp82475, ptr %tmp4, ptr %tmp7 ; <ptr> [#uses=1]
|
||||
br i1 %brmerge786, label %bb111, label %bb103
|
||||
|
||||
bb80: ; preds = %bb59
|
||||
%tmp82 = fcmp olt float %tmp5, %tmp11 ; <i1> [#uses=2]
|
||||
%brmerge = or i1 %tmp82, %tmp12 ; <i1> [#uses=1]
|
||||
%tmp4.mux = select i1 %tmp82, float* %tmp4, float* %tmp7 ; <float*> [#uses=1]
|
||||
%tmp4.mux = select i1 %tmp82, ptr %tmp4, ptr %tmp7 ; <ptr> [#uses=1]
|
||||
br i1 %brmerge, label %bb111, label %bb103
|
||||
|
||||
bb103: ; preds = %bb80, %bb72
|
||||
br label %bb111
|
||||
|
||||
bb111: ; preds = %bb103, %bb80, %bb72, %bb50, %bb40, %bb26
|
||||
%iftmp.0.0.in = phi float* [ %tmp10, %bb103 ], [ %result, %bb26 ], [ %result, %bb40 ], [ %result, %bb50 ], [ %tmp4.mux, %bb80 ], [ %tmp4.mux787, %bb72 ] ; <float*> [#uses=1]
|
||||
%iftmp.0.0 = load float, float* %iftmp.0.0.in ; <float> [#uses=1]
|
||||
%iftmp.0.0.in = phi ptr [ %tmp10, %bb103 ], [ %result, %bb26 ], [ %result, %bb40 ], [ %result, %bb50 ], [ %tmp4.mux, %bb80 ], [ %tmp4.mux787, %bb72 ] ; <ptr> [#uses=1]
|
||||
%iftmp.0.0 = load float, ptr %iftmp.0.0.in ; <float> [#uses=1]
|
||||
%tmp125 = fcmp ogt float %tmp8, %tmp11 ; <i1> [#uses=5]
|
||||
br i1 %tmp125, label %bb128, label %bb136
|
||||
|
||||
|
@ -92,29 +92,29 @@ bb174: ; preds = %bb165, %bb155, %bb141
|
|||
bb187: ; preds = %bb174
|
||||
%tmp197483 = fcmp ogt float %tmp5, %tmp8 ; <i1> [#uses=2]
|
||||
%brmerge790 = or i1 %tmp197483, %tmp125 ; <i1> [#uses=1]
|
||||
%tmp4.mux791 = select i1 %tmp197483, float* %tmp4, float* %tmp7 ; <float*> [#uses=1]
|
||||
%tmp4.mux791 = select i1 %tmp197483, ptr %tmp4, ptr %tmp7 ; <ptr> [#uses=1]
|
||||
br i1 %brmerge790, label %bb226, label %bb218
|
||||
|
||||
bb195: ; preds = %bb174
|
||||
%tmp197 = fcmp ogt float %tmp5, %tmp11 ; <i1> [#uses=2]
|
||||
%brmerge788 = or i1 %tmp197, %tmp125 ; <i1> [#uses=1]
|
||||
%tmp4.mux789 = select i1 %tmp197, float* %tmp4, float* %tmp7 ; <float*> [#uses=1]
|
||||
%tmp4.mux789 = select i1 %tmp197, ptr %tmp4, ptr %tmp7 ; <ptr> [#uses=1]
|
||||
br i1 %brmerge788, label %bb226, label %bb218
|
||||
|
||||
bb218: ; preds = %bb195, %bb187
|
||||
br label %bb226
|
||||
|
||||
bb226: ; preds = %bb218, %bb195, %bb187, %bb165, %bb155, %bb141
|
||||
%iftmp.7.0.in = phi float* [ %tmp10, %bb218 ], [ %result, %bb141 ], [ %result, %bb155 ], [ %result, %bb165 ], [ %tmp4.mux789, %bb195 ], [ %tmp4.mux791, %bb187 ] ; <float*> [#uses=1]
|
||||
%iftmp.7.0 = load float, float* %iftmp.7.0.in ; <float> [#uses=1]
|
||||
%tmp229 = getelementptr float, float* %result, i32 1 ; <float*> [#uses=7]
|
||||
%tmp230 = load float, float* %tmp229, align 4 ; <float> [#uses=6]
|
||||
%tmp232 = getelementptr float, float* %result, i32 3 ; <float*> [#uses=5]
|
||||
%tmp233 = load float, float* %tmp232, align 4 ; <float> [#uses=10]
|
||||
%tmp235 = getelementptr float, float* %result, i32 5 ; <float*> [#uses=5]
|
||||
%tmp236 = load float, float* %tmp235, align 4 ; <float> [#uses=8]
|
||||
%tmp238 = getelementptr float, float* %result, i32 7 ; <float*> [#uses=3]
|
||||
%tmp239 = load float, float* %tmp238, align 4 ; <float> [#uses=8]
|
||||
%iftmp.7.0.in = phi ptr [ %tmp10, %bb218 ], [ %result, %bb141 ], [ %result, %bb155 ], [ %result, %bb165 ], [ %tmp4.mux789, %bb195 ], [ %tmp4.mux791, %bb187 ] ; <ptr> [#uses=1]
|
||||
%iftmp.7.0 = load float, ptr %iftmp.7.0.in ; <float> [#uses=1]
|
||||
%tmp229 = getelementptr float, ptr %result, i32 1 ; <ptr> [#uses=7]
|
||||
%tmp230 = load float, ptr %tmp229, align 4 ; <float> [#uses=6]
|
||||
%tmp232 = getelementptr float, ptr %result, i32 3 ; <ptr> [#uses=5]
|
||||
%tmp233 = load float, ptr %tmp232, align 4 ; <float> [#uses=10]
|
||||
%tmp235 = getelementptr float, ptr %result, i32 5 ; <ptr> [#uses=5]
|
||||
%tmp236 = load float, ptr %tmp235, align 4 ; <float> [#uses=8]
|
||||
%tmp238 = getelementptr float, ptr %result, i32 7 ; <ptr> [#uses=3]
|
||||
%tmp239 = load float, ptr %tmp238, align 4 ; <float> [#uses=8]
|
||||
%tmp240 = fcmp olt float %tmp236, %tmp239 ; <i1> [#uses=5]
|
||||
br i1 %tmp240, label %bb243, label %bb251
|
||||
|
||||
|
@ -147,21 +147,21 @@ bb289: ; preds = %bb280, %bb270, %bb256
|
|||
bb302: ; preds = %bb289
|
||||
%tmp312491 = fcmp olt float %tmp233, %tmp236 ; <i1> [#uses=2]
|
||||
%brmerge793 = or i1 %tmp312491, %tmp240 ; <i1> [#uses=1]
|
||||
%tmp232.mux794 = select i1 %tmp312491, float* %tmp232, float* %tmp235 ; <float*> [#uses=1]
|
||||
%tmp232.mux794 = select i1 %tmp312491, ptr %tmp232, ptr %tmp235 ; <ptr> [#uses=1]
|
||||
br i1 %brmerge793, label %bb341, label %bb333
|
||||
|
||||
bb310: ; preds = %bb289
|
||||
%tmp312 = fcmp olt float %tmp233, %tmp239 ; <i1> [#uses=2]
|
||||
%brmerge792 = or i1 %tmp312, %tmp240 ; <i1> [#uses=1]
|
||||
%tmp232.mux = select i1 %tmp312, float* %tmp232, float* %tmp235 ; <float*> [#uses=1]
|
||||
%tmp232.mux = select i1 %tmp312, ptr %tmp232, ptr %tmp235 ; <ptr> [#uses=1]
|
||||
br i1 %brmerge792, label %bb341, label %bb333
|
||||
|
||||
bb333: ; preds = %bb310, %bb302
|
||||
br label %bb341
|
||||
|
||||
bb341: ; preds = %bb333, %bb310, %bb302, %bb280, %bb270, %bb256
|
||||
%iftmp.14.0.in = phi float* [ %tmp238, %bb333 ], [ %tmp229, %bb280 ], [ %tmp229, %bb270 ], [ %tmp229, %bb256 ], [ %tmp232.mux, %bb310 ], [ %tmp232.mux794, %bb302 ] ; <float*> [#uses=1]
|
||||
%iftmp.14.0 = load float, float* %iftmp.14.0.in ; <float> [#uses=1]
|
||||
%iftmp.14.0.in = phi ptr [ %tmp238, %bb333 ], [ %tmp229, %bb280 ], [ %tmp229, %bb270 ], [ %tmp229, %bb256 ], [ %tmp232.mux, %bb310 ], [ %tmp232.mux794, %bb302 ] ; <ptr> [#uses=1]
|
||||
%iftmp.14.0 = load float, ptr %iftmp.14.0.in ; <float> [#uses=1]
|
||||
%tmp355 = fcmp ogt float %tmp236, %tmp239 ; <i1> [#uses=5]
|
||||
br i1 %tmp355, label %bb358, label %bb366
|
||||
|
||||
|
@ -194,27 +194,27 @@ bb404: ; preds = %bb395, %bb385, %bb371
|
|||
bb417: ; preds = %bb404
|
||||
%tmp427499 = fcmp ogt float %tmp233, %tmp236 ; <i1> [#uses=2]
|
||||
%brmerge797 = or i1 %tmp427499, %tmp355 ; <i1> [#uses=1]
|
||||
%tmp232.mux798 = select i1 %tmp427499, float* %tmp232, float* %tmp235 ; <float*> [#uses=1]
|
||||
%tmp232.mux798 = select i1 %tmp427499, ptr %tmp232, ptr %tmp235 ; <ptr> [#uses=1]
|
||||
br i1 %brmerge797, label %bb456, label %bb448
|
||||
|
||||
bb425: ; preds = %bb404
|
||||
%tmp427 = fcmp ogt float %tmp233, %tmp239 ; <i1> [#uses=2]
|
||||
%brmerge795 = or i1 %tmp427, %tmp355 ; <i1> [#uses=1]
|
||||
%tmp232.mux796 = select i1 %tmp427, float* %tmp232, float* %tmp235 ; <float*> [#uses=1]
|
||||
%tmp232.mux796 = select i1 %tmp427, ptr %tmp232, ptr %tmp235 ; <ptr> [#uses=1]
|
||||
br i1 %brmerge795, label %bb456, label %bb448
|
||||
|
||||
bb448: ; preds = %bb425, %bb417
|
||||
br label %bb456
|
||||
|
||||
bb456: ; preds = %bb448, %bb425, %bb417, %bb395, %bb385, %bb371
|
||||
%iftmp.21.0.in = phi float* [ %tmp238, %bb448 ], [ %tmp229, %bb395 ], [ %tmp229, %bb385 ], [ %tmp229, %bb371 ], [ %tmp232.mux796, %bb425 ], [ %tmp232.mux798, %bb417 ] ; <float*> [#uses=1]
|
||||
%iftmp.21.0 = load float, float* %iftmp.21.0.in ; <float> [#uses=1]
|
||||
%iftmp.21.0.in = phi ptr [ %tmp238, %bb448 ], [ %tmp229, %bb395 ], [ %tmp229, %bb385 ], [ %tmp229, %bb371 ], [ %tmp232.mux796, %bb425 ], [ %tmp232.mux798, %bb417 ] ; <ptr> [#uses=1]
|
||||
%iftmp.21.0 = load float, ptr %iftmp.21.0.in ; <float> [#uses=1]
|
||||
%tmp458459 = fpext float %iftmp.21.0 to double ; <double> [#uses=1]
|
||||
%tmp460461 = fpext float %iftmp.7.0 to double ; <double> [#uses=1]
|
||||
%tmp462463 = fpext float %iftmp.14.0 to double ; <double> [#uses=1]
|
||||
%tmp464465 = fpext float %iftmp.0.0 to double ; <double> [#uses=1]
|
||||
%tmp467 = tail call i32 (i8*, ...) @printf( i8* getelementptr ([48 x i8], [48 x i8]* @.str, i32 0, i32 0), double %tmp464465, double %tmp462463, double %tmp460461, double %tmp458459 ) nounwind ; <i32> [#uses=0]
|
||||
%tmp467 = tail call i32 (ptr, ...) @printf( ptr @.str, double %tmp464465, double %tmp462463, double %tmp460461, double %tmp458459 ) nounwind ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
||||
declare i32 @printf(i8*, ...) nounwind
|
||||
declare i32 @printf(ptr, ...) nounwind
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
; allocated to the input/output register.
|
||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
|
||||
target triple = "i386-apple-darwin8"
|
||||
@pixels = weak global i32 0 ; <i32*> [#uses=2]
|
||||
@pixels = weak global i32 0 ; <ptr> [#uses=2]
|
||||
|
||||
define void @test() nounwind {
|
||||
entry:
|
||||
%tmp = load i32, i32* @pixels, align 4 ; <i32> [#uses=1]
|
||||
%tmp = load i32, ptr @pixels, align 4 ; <i32> [#uses=1]
|
||||
%tmp1 = tail call i32 asm sideeffect "a: $0 $1", "=r,0,~{dirflag},~{fpsr},~{flags},~{ax}"( i32 %tmp ) nounwind ; <i32> [#uses=1]
|
||||
store i32 %tmp1, i32* @pixels, align 4
|
||||
store i32 %tmp1, ptr @pixels, align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -18,10 +18,10 @@ entry:
|
|||
; CHECK-NOT: ax
|
||||
; CHECK: {{$}}
|
||||
|
||||
define void @test2(i16* %block, i8* %pixels, i32 %line_size) nounwind {
|
||||
define void @test2(ptr %block, ptr %pixels, i32 %line_size) nounwind {
|
||||
entry:
|
||||
%tmp1 = getelementptr i16, i16* %block, i32 64 ; <i16*> [#uses=1]
|
||||
%tmp3 = tail call i8* asm sideeffect "b: $0 $1 $2", "=r,r,0,~{dirflag},~{fpsr},~{flags},~{ax}"( i16* %tmp1, i8* %pixels ) nounwind ; <i8*> [#uses=0]
|
||||
%tmp1 = getelementptr i16, ptr %block, i32 64 ; <ptr> [#uses=1]
|
||||
%tmp3 = tail call ptr asm sideeffect "b: $0 $1 $2", "=r,r,0,~{dirflag},~{fpsr},~{flags},~{ax}"( ptr %tmp1, ptr %pixels ) nounwind ; <ptr> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
; PR2082
|
||||
; Local register allocator was refusing to use ESI, EDI, and EBP so it ran out of
|
||||
; registers.
|
||||
define void @transpose4x4(i8* %dst, i8* %src, i32 %dst_stride, i32 %src_stride) {
|
||||
define void @transpose4x4(ptr %dst, ptr %src, i32 %dst_stride, i32 %src_stride) {
|
||||
; CHECK-LABEL: transpose4x4:
|
||||
; CHECK: # %bb.0: # %entry
|
||||
; CHECK-NEXT: pushl %ebx
|
||||
|
@ -47,50 +47,42 @@ define void @transpose4x4(i8* %dst, i8* %src, i32 %dst_stride, i32 %src_stride)
|
|||
; CHECK-NEXT: .cfi_def_cfa_offset 4
|
||||
; CHECK-NEXT: retl
|
||||
entry:
|
||||
%dst_addr = alloca i8* ; <i8**> [#uses=5]
|
||||
%src_addr = alloca i8* ; <i8**> [#uses=5]
|
||||
%dst_stride_addr = alloca i32 ; <i32*> [#uses=4]
|
||||
%src_stride_addr = alloca i32 ; <i32*> [#uses=4]
|
||||
%dst_addr = alloca ptr ; <ptr> [#uses=5]
|
||||
%src_addr = alloca ptr ; <ptr> [#uses=5]
|
||||
%dst_stride_addr = alloca i32 ; <ptr> [#uses=4]
|
||||
%src_stride_addr = alloca i32 ; <ptr> [#uses=4]
|
||||
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
|
||||
store i8* %dst, i8** %dst_addr
|
||||
store i8* %src, i8** %src_addr
|
||||
store i32 %dst_stride, i32* %dst_stride_addr
|
||||
store i32 %src_stride, i32* %src_stride_addr
|
||||
%tmp = load i8*, i8** %dst_addr, align 4 ; <i8*> [#uses=1]
|
||||
%tmp1 = getelementptr i8, i8* %tmp, i32 0 ; <i8*> [#uses=1]
|
||||
%tmp12 = bitcast i8* %tmp1 to i32* ; <i32*> [#uses=1]
|
||||
%tmp3 = load i8*, i8** %dst_addr, align 4 ; <i8*> [#uses=1]
|
||||
%tmp4 = load i32, i32* %dst_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp5 = getelementptr i8, i8* %tmp3, i32 %tmp4 ; <i8*> [#uses=1]
|
||||
%tmp56 = bitcast i8* %tmp5 to i32* ; <i32*> [#uses=1]
|
||||
%tmp7 = load i32, i32* %dst_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
store ptr %dst, ptr %dst_addr
|
||||
store ptr %src, ptr %src_addr
|
||||
store i32 %dst_stride, ptr %dst_stride_addr
|
||||
store i32 %src_stride, ptr %src_stride_addr
|
||||
%tmp = load ptr, ptr %dst_addr, align 4 ; <ptr> [#uses=1]
|
||||
%tmp1 = getelementptr i8, ptr %tmp, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp3 = load ptr, ptr %dst_addr, align 4 ; <ptr> [#uses=1]
|
||||
%tmp4 = load i32, ptr %dst_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp5 = getelementptr i8, ptr %tmp3, i32 %tmp4 ; <ptr> [#uses=1]
|
||||
%tmp7 = load i32, ptr %dst_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp8 = mul i32 %tmp7, 2 ; <i32> [#uses=1]
|
||||
%tmp9 = load i8*, i8** %dst_addr, align 4 ; <i8*> [#uses=1]
|
||||
%tmp10 = getelementptr i8, i8* %tmp9, i32 %tmp8 ; <i8*> [#uses=1]
|
||||
%tmp1011 = bitcast i8* %tmp10 to i32* ; <i32*> [#uses=1]
|
||||
%tmp13 = load i32, i32* %dst_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp9 = load ptr, ptr %dst_addr, align 4 ; <ptr> [#uses=1]
|
||||
%tmp10 = getelementptr i8, ptr %tmp9, i32 %tmp8 ; <ptr> [#uses=1]
|
||||
%tmp13 = load i32, ptr %dst_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp14 = mul i32 %tmp13, 3 ; <i32> [#uses=1]
|
||||
%tmp15 = load i8*, i8** %dst_addr, align 4 ; <i8*> [#uses=1]
|
||||
%tmp16 = getelementptr i8, i8* %tmp15, i32 %tmp14 ; <i8*> [#uses=1]
|
||||
%tmp1617 = bitcast i8* %tmp16 to i32* ; <i32*> [#uses=1]
|
||||
%tmp18 = load i8*, i8** %src_addr, align 4 ; <i8*> [#uses=1]
|
||||
%tmp19 = getelementptr i8, i8* %tmp18, i32 0 ; <i8*> [#uses=1]
|
||||
%tmp1920 = bitcast i8* %tmp19 to i32* ; <i32*> [#uses=1]
|
||||
%tmp21 = load i8*, i8** %src_addr, align 4 ; <i8*> [#uses=1]
|
||||
%tmp22 = load i32, i32* %src_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp23 = getelementptr i8, i8* %tmp21, i32 %tmp22 ; <i8*> [#uses=1]
|
||||
%tmp2324 = bitcast i8* %tmp23 to i32* ; <i32*> [#uses=1]
|
||||
%tmp25 = load i32, i32* %src_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp15 = load ptr, ptr %dst_addr, align 4 ; <ptr> [#uses=1]
|
||||
%tmp16 = getelementptr i8, ptr %tmp15, i32 %tmp14 ; <ptr> [#uses=1]
|
||||
%tmp18 = load ptr, ptr %src_addr, align 4 ; <ptr> [#uses=1]
|
||||
%tmp19 = getelementptr i8, ptr %tmp18, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp21 = load ptr, ptr %src_addr, align 4 ; <ptr> [#uses=1]
|
||||
%tmp22 = load i32, ptr %src_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp23 = getelementptr i8, ptr %tmp21, i32 %tmp22 ; <ptr> [#uses=1]
|
||||
%tmp25 = load i32, ptr %src_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp26 = mul i32 %tmp25, 2 ; <i32> [#uses=1]
|
||||
%tmp27 = load i8*, i8** %src_addr, align 4 ; <i8*> [#uses=1]
|
||||
%tmp28 = getelementptr i8, i8* %tmp27, i32 %tmp26 ; <i8*> [#uses=1]
|
||||
%tmp2829 = bitcast i8* %tmp28 to i32* ; <i32*> [#uses=1]
|
||||
%tmp30 = load i32, i32* %src_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp27 = load ptr, ptr %src_addr, align 4 ; <ptr> [#uses=1]
|
||||
%tmp28 = getelementptr i8, ptr %tmp27, i32 %tmp26 ; <ptr> [#uses=1]
|
||||
%tmp30 = load i32, ptr %src_stride_addr, align 4 ; <i32> [#uses=1]
|
||||
%tmp31 = mul i32 %tmp30, 3 ; <i32> [#uses=1]
|
||||
%tmp32 = load i8*, i8** %src_addr, align 4 ; <i8*> [#uses=1]
|
||||
%tmp33 = getelementptr i8, i8* %tmp32, i32 %tmp31 ; <i8*> [#uses=1]
|
||||
%tmp3334 = bitcast i8* %tmp33 to i32* ; <i32*> [#uses=1]
|
||||
call void asm sideeffect "movd $4, %mm0 \0A\09movd $5, %mm1 \0A\09movd $6, %mm2 \0A\09movd $7, %mm3 \0A\09punpcklbw %mm1, %mm0 \0A\09punpcklbw %mm3, %mm2 \0A\09movq %mm0, %mm1 \0A\09punpcklwd %mm2, %mm0 \0A\09punpckhwd %mm2, %mm1 \0A\09movd %mm0, $0 \0A\09punpckhdq %mm0, %mm0 \0A\09movd %mm0, $1 \0A\09movd %mm1, $2 \0A\09punpckhdq %mm1, %mm1 \0A\09movd %mm1, $3 \0A\09", "=*m,=*m,=*m,=*m,*m,*m,*m,*m,~{dirflag},~{fpsr},~{flags}"( i32* elementtype( i32) %tmp12, i32* elementtype(i32) %tmp56, i32* elementtype(i32) %tmp1011, i32* elementtype(i32) %tmp1617, i32* elementtype(i32) %tmp1920, i32* elementtype(i32) %tmp2324, i32* elementtype(i32) %tmp2829, i32* elementtype(i32) %tmp3334 ) nounwind
|
||||
%tmp32 = load ptr, ptr %src_addr, align 4 ; <ptr> [#uses=1]
|
||||
%tmp33 = getelementptr i8, ptr %tmp32, i32 %tmp31 ; <ptr> [#uses=1]
|
||||
call void asm sideeffect "movd $4, %mm0 \0A\09movd $5, %mm1 \0A\09movd $6, %mm2 \0A\09movd $7, %mm3 \0A\09punpcklbw %mm1, %mm0 \0A\09punpcklbw %mm3, %mm2 \0A\09movq %mm0, %mm1 \0A\09punpcklwd %mm2, %mm0 \0A\09punpckhwd %mm2, %mm1 \0A\09movd %mm0, $0 \0A\09punpckhdq %mm0, %mm0 \0A\09movd %mm0, $1 \0A\09movd %mm1, $2 \0A\09punpckhdq %mm1, %mm1 \0A\09movd %mm1, $3 \0A\09", "=*m,=*m,=*m,=*m,*m,*m,*m,*m,~{dirflag},~{fpsr},~{flags}"( ptr elementtype( i32) %tmp1, ptr elementtype(i32) %tmp5, ptr elementtype(i32) %tmp10, ptr elementtype(i32) %tmp16, ptr elementtype(i32) %tmp19, ptr elementtype(i32) %tmp23, ptr elementtype(i32) %tmp28, ptr elementtype(i32) %tmp33 ) nounwind
|
||||
br label %return
|
||||
|
||||
return: ; preds = %entry
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
; RUN: llc < %s -mtriple=i686-pc-linux-gnu -mattr=+sse2
|
||||
; PR2076
|
||||
|
||||
define void @h264_h_loop_filter_luma_mmx2(i8* %pix, i32 %stride, i32 %alpha, i32 %beta, i8* %tc0) nounwind {
|
||||
define void @h264_h_loop_filter_luma_mmx2(ptr %pix, i32 %stride, i32 %alpha, i32 %beta, ptr %tc0) nounwind {
|
||||
entry:
|
||||
%tmp164 = getelementptr [16 x i32], [16 x i32]* null, i32 0, i32 11 ; <i32*> [#uses=1]
|
||||
%tmp169 = getelementptr [16 x i32], [16 x i32]* null, i32 0, i32 13 ; <i32*> [#uses=1]
|
||||
%tmp174 = getelementptr [16 x i32], [16 x i32]* null, i32 0, i32 15 ; <i32*> [#uses=1]
|
||||
%tmp164 = getelementptr [16 x i32], ptr null, i32 0, i32 11 ; <ptr> [#uses=1]
|
||||
%tmp169 = getelementptr [16 x i32], ptr null, i32 0, i32 13 ; <ptr> [#uses=1]
|
||||
%tmp174 = getelementptr [16 x i32], ptr null, i32 0, i32 15 ; <ptr> [#uses=1]
|
||||
%tmp154.sum317 = add i32 0, %stride ; <i32> [#uses=1]
|
||||
%tmp154.sum315 = mul i32 %stride, 6 ; <i32> [#uses=1]
|
||||
%tmp154.sum = mul i32 %stride, 7 ; <i32> [#uses=1]
|
||||
|
@ -14,18 +14,14 @@ entry:
|
|||
|
||||
bb32: ; preds = %entry
|
||||
%pix_addr.0327.sum340 = add i32 %pix_addr.0327.rec, 0 ; <i32> [#uses=1]
|
||||
%tmp154 = getelementptr i8, i8* %pix, i32 %pix_addr.0327.sum340 ; <i8*> [#uses=1]
|
||||
%tmp177178 = bitcast i8* %tmp154 to i32* ; <i32*> [#uses=1]
|
||||
%tmp154 = getelementptr i8, ptr %pix, i32 %pix_addr.0327.sum340 ; <ptr> [#uses=1]
|
||||
%pix_addr.0327.sum339 = add i32 %pix_addr.0327.rec, %tmp154.sum317 ; <i32> [#uses=1]
|
||||
%tmp181 = getelementptr i8, i8* %pix, i32 %pix_addr.0327.sum339 ; <i8*> [#uses=1]
|
||||
%tmp181182 = bitcast i8* %tmp181 to i32* ; <i32*> [#uses=1]
|
||||
%tmp181 = getelementptr i8, ptr %pix, i32 %pix_addr.0327.sum339 ; <ptr> [#uses=1]
|
||||
%pix_addr.0327.sum338 = add i32 %pix_addr.0327.rec, %tmp154.sum315 ; <i32> [#uses=1]
|
||||
%tmp186 = getelementptr i8, i8* %pix, i32 %pix_addr.0327.sum338 ; <i8*> [#uses=1]
|
||||
%tmp186187 = bitcast i8* %tmp186 to i32* ; <i32*> [#uses=1]
|
||||
%tmp186 = getelementptr i8, ptr %pix, i32 %pix_addr.0327.sum338 ; <ptr> [#uses=1]
|
||||
%pix_addr.0327.sum337 = add i32 %pix_addr.0327.rec, %tmp154.sum ; <i32> [#uses=1]
|
||||
%tmp191 = getelementptr i8, i8* %pix, i32 %pix_addr.0327.sum337 ; <i8*> [#uses=1]
|
||||
%tmp191192 = bitcast i8* %tmp191 to i32* ; <i32*> [#uses=1]
|
||||
call void asm sideeffect "movd $4, %mm0 \0A\09movd $5, %mm1 \0A\09movd $6, %mm2 \0A\09movd $7, %mm3 \0A\09punpcklbw %mm1, %mm0 \0A\09punpcklbw %mm3, %mm2 \0A\09movq %mm0, %mm1 \0A\09punpcklwd %mm2, %mm0 \0A\09punpckhwd %mm2, %mm1 \0A\09movd %mm0, $0 \0A\09punpckhdq %mm0, %mm0 \0A\09movd %mm0, $1 \0A\09movd %mm1, $2 \0A\09punpckhdq %mm1, %mm1 \0A\09movd %mm1, $3 \0A\09", "=*m,=*m,=*m,=*m,*m,*m,*m,*m,~{dirflag},~{fpsr},~{flags}"( i32* elementtype( i32) null, i32* elementtype(i32) %tmp164, i32* elementtype(i32) %tmp169, i32* elementtype(i32) %tmp174, i32* elementtype(i32) %tmp177178, i32* elementtype(i32) %tmp181182, i32* elementtype(i32) %tmp186187, i32* elementtype(i32) %tmp191192 ) nounwind
|
||||
%tmp191 = getelementptr i8, ptr %pix, i32 %pix_addr.0327.sum337 ; <ptr> [#uses=1]
|
||||
call void asm sideeffect "movd $4, %mm0 \0A\09movd $5, %mm1 \0A\09movd $6, %mm2 \0A\09movd $7, %mm3 \0A\09punpcklbw %mm1, %mm0 \0A\09punpcklbw %mm3, %mm2 \0A\09movq %mm0, %mm1 \0A\09punpcklwd %mm2, %mm0 \0A\09punpckhwd %mm2, %mm1 \0A\09movd %mm0, $0 \0A\09punpckhdq %mm0, %mm0 \0A\09movd %mm0, $1 \0A\09movd %mm1, $2 \0A\09punpckhdq %mm1, %mm1 \0A\09movd %mm1, $3 \0A\09", "=*m,=*m,=*m,=*m,*m,*m,*m,*m,~{dirflag},~{fpsr},~{flags}"( ptr elementtype( i32) null, ptr elementtype(i32) %tmp164, ptr elementtype(i32) %tmp169, ptr elementtype(i32) %tmp174, ptr elementtype(i32) %tmp154, ptr elementtype(i32) %tmp181, ptr elementtype(i32) %tmp186, ptr elementtype(i32) %tmp191 ) nounwind
|
||||
unreachable
|
||||
|
||||
bb292: ; preds = %entry
|
||||
|
|
|
@ -4,25 +4,24 @@
|
|||
%struct.YY = type { i64 }
|
||||
%struct.ZZ = type opaque
|
||||
|
||||
define signext i8 @f(%struct.XX*** %fontMap, %struct.XX* %uen) {
|
||||
define signext i8 @f(ptr %fontMap, ptr %uen) {
|
||||
entry:
|
||||
%tmp45 = add i16 0, 1 ; <i16> [#uses=2]
|
||||
br i1 false, label %bb124, label %bb53
|
||||
|
||||
bb53: ; preds = %entry
|
||||
%tmp55 = call %struct.YY** @AA( i64 1, %struct.XX* %uen ) ; <%struct.YY**> [#uses=3]
|
||||
%tmp2728128 = load %struct.XX*, %struct.XX** null ; <%struct.XX*> [#uses=1]
|
||||
%tmp61 = load %struct.YY*, %struct.YY** %tmp55, align 8 ; <%struct.YY*> [#uses=1]
|
||||
%tmp62 = getelementptr %struct.YY, %struct.YY* %tmp61, i32 0, i32 0 ; <i64*> [#uses=1]
|
||||
%tmp63 = load i64, i64* %tmp62, align 8 ; <i64> [#uses=1]
|
||||
%tmp55 = call ptr @AA( i64 1, ptr %uen ) ; <ptr> [#uses=3]
|
||||
%tmp2728128 = load ptr, ptr null ; <ptr> [#uses=1]
|
||||
%tmp61 = load ptr, ptr %tmp55, align 8 ; <ptr> [#uses=1]
|
||||
%tmp62 = getelementptr %struct.YY, ptr %tmp61, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp63 = load i64, ptr %tmp62, align 8 ; <i64> [#uses=1]
|
||||
%tmp6566 = zext i16 %tmp45 to i64 ; <i64> [#uses=1]
|
||||
%tmp67 = shl i64 %tmp6566, 1 ; <i64> [#uses=1]
|
||||
call void @BB( %struct.YY** %tmp55, i64 %tmp67, i8 signext 0, %struct.XX* %uen )
|
||||
call void @BB( ptr %tmp55, i64 %tmp67, i8 signext 0, ptr %uen )
|
||||
%tmp121131 = icmp eq i16 %tmp45, 1 ; <i1> [#uses=1]
|
||||
br i1 %tmp121131, label %bb124, label %bb70.preheader
|
||||
|
||||
bb70.preheader: ; preds = %bb53
|
||||
%tmp72 = bitcast %struct.XX* %tmp2728128 to %struct.ZZ*** ; <%struct.ZZ***> [#uses=1]
|
||||
br label %bb70
|
||||
|
||||
bb70: ; preds = %bb119, %bb70.preheader
|
||||
|
@ -30,14 +29,14 @@ bb70: ; preds = %bb119, %bb70.preheader
|
|||
%tmp.135 = trunc i64 %tmp63 to i32 ; <i32> [#uses=1]
|
||||
%tmp136 = shl i32 %indvar133, 1 ; <i32> [#uses=1]
|
||||
%DD = add i32 %tmp136, %tmp.135 ; <i32> [#uses=1]
|
||||
%tmp73 = load %struct.ZZ**, %struct.ZZ*** %tmp72, align 8 ; <%struct.ZZ**> [#uses=0]
|
||||
%tmp73 = load ptr, ptr %tmp2728128, align 8 ; <ptr> [#uses=0]
|
||||
br i1 false, label %bb119, label %bb77
|
||||
|
||||
bb77: ; preds = %bb70
|
||||
%tmp8384 = trunc i32 %DD to i16 ; <i16> [#uses=1]
|
||||
%tmp85 = sub i16 0, %tmp8384 ; <i16> [#uses=1]
|
||||
store i16 %tmp85, i16* null, align 8
|
||||
call void @CC( %struct.YY** %tmp55, i64 0, i64 2, i8* null, %struct.XX* %uen )
|
||||
store i16 %tmp85, ptr null, align 8
|
||||
call void @CC( ptr %tmp55, i64 0, i64 2, ptr null, ptr %uen )
|
||||
ret i8 0
|
||||
|
||||
bb119: ; preds = %bb70
|
||||
|
@ -48,8 +47,8 @@ bb124: ; preds = %bb53, %entry
|
|||
ret i8 undef
|
||||
}
|
||||
|
||||
declare %struct.YY** @AA(i64, %struct.XX*)
|
||||
declare ptr @AA(i64, ptr)
|
||||
|
||||
declare void @BB(%struct.YY**, i64, i8 signext , %struct.XX*)
|
||||
declare void @BB(ptr, i64, i8 signext , ptr)
|
||||
|
||||
declare void @CC(%struct.YY**, i64, i64, i8*, %struct.XX*)
|
||||
declare void @CC(ptr, i64, i64, ptr, ptr)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
|
||||
target triple = "i386-pc-linux-gnu"
|
||||
|
||||
define void @dct_unquantize_h263_intra_mmx(i16* %block, i32 %n, i32 %qscale) nounwind {
|
||||
define void @dct_unquantize_h263_intra_mmx(ptr %block, i32 %n, i32 %qscale) nounwind {
|
||||
entry:
|
||||
%tmp1 = shl i32 %qscale, 1 ; <i32> [#uses=1]
|
||||
br i1 false, label %bb46, label %bb59
|
||||
|
@ -12,6 +12,6 @@ bb46: ; preds = %entry
|
|||
ret void
|
||||
|
||||
bb59: ; preds = %entry
|
||||
tail call void asm sideeffect "movd $1, %mm6 \0A\09packssdw %mm6, %mm6 \0A\09packssdw %mm6, %mm6 \0A\09movd $2, %mm5 \0A\09pxor %mm7, %mm7 \0A\09packssdw %mm5, %mm5 \0A\09packssdw %mm5, %mm5 \0A\09psubw %mm5, %mm7 \0A\09pxor %mm4, %mm4 \0A\09.align 1<<4\0A\091: \0A\09movq ($0, $3), %mm0 \0A\09movq 8($0, $3), %mm1 \0A\09pmullw %mm6, %mm0 \0A\09pmullw %mm6, %mm1 \0A\09movq ($0, $3), %mm2 \0A\09movq 8($0, $3), %mm3 \0A\09pcmpgtw %mm4, %mm2 \0A\09pcmpgtw %mm4, %mm3 \0A\09pxor %mm2, %mm0 \0A\09pxor %mm3, %mm1 \0A\09paddw %mm7, %mm0 \0A\09paddw %mm7, %mm1 \0A\09pxor %mm0, %mm2 \0A\09pxor %mm1, %mm3 \0A\09pcmpeqw %mm7, %mm0 \0A\09pcmpeqw %mm7, %mm1 \0A\09pandn %mm2, %mm0 \0A\09pandn %mm3, %mm1 \0A\09movq %mm0, ($0, $3) \0A\09movq %mm1, 8($0, $3) \0A\09add $$16, $3 \0A\09jng 1b \0A\09", "r,imr,imr,r,~{dirflag},~{fpsr},~{flags},~{memory}"( i16* null, i32 %tmp1, i32 0, i32 0 ) nounwind
|
||||
tail call void asm sideeffect "movd $1, %mm6 \0A\09packssdw %mm6, %mm6 \0A\09packssdw %mm6, %mm6 \0A\09movd $2, %mm5 \0A\09pxor %mm7, %mm7 \0A\09packssdw %mm5, %mm5 \0A\09packssdw %mm5, %mm5 \0A\09psubw %mm5, %mm7 \0A\09pxor %mm4, %mm4 \0A\09.align 1<<4\0A\091: \0A\09movq ($0, $3), %mm0 \0A\09movq 8($0, $3), %mm1 \0A\09pmullw %mm6, %mm0 \0A\09pmullw %mm6, %mm1 \0A\09movq ($0, $3), %mm2 \0A\09movq 8($0, $3), %mm3 \0A\09pcmpgtw %mm4, %mm2 \0A\09pcmpgtw %mm4, %mm3 \0A\09pxor %mm2, %mm0 \0A\09pxor %mm3, %mm1 \0A\09paddw %mm7, %mm0 \0A\09paddw %mm7, %mm1 \0A\09pxor %mm0, %mm2 \0A\09pxor %mm1, %mm3 \0A\09pcmpeqw %mm7, %mm0 \0A\09pcmpeqw %mm7, %mm1 \0A\09pandn %mm2, %mm0 \0A\09pandn %mm3, %mm1 \0A\09movq %mm0, ($0, $3) \0A\09movq %mm1, 8($0, $3) \0A\09add $$16, $3 \0A\09jng 1b \0A\09", "r,imr,imr,r,~{dirflag},~{fpsr},~{flags},~{memory}"( ptr null, i32 %tmp1, i32 0, i32 0 ) nounwind
|
||||
ret void
|
||||
}
|
||||
|
|
|
@ -4,18 +4,17 @@
|
|||
%struct.Lattice = type { %struct.Position, %struct.Position, %struct.Position, %struct.Position, %struct.Position, %struct.Position, %struct.Position, i32, i32, i32 }
|
||||
%struct.Position = type { double, double, double }
|
||||
|
||||
define fastcc %struct.CompAtom* @_ZNK7Lattice6createEP8CompAtomii(%struct.Lattice* %this, %struct.CompAtom* %d, i32 %n, i32 %i) {
|
||||
define fastcc ptr @_ZNK7Lattice6createEP8CompAtomii(ptr %this, ptr %d, i32 %n, i32 %i) {
|
||||
entry:
|
||||
%tmp18 = tail call i8* @_Znam( i32 0 ) ; <i8*> [#uses=1]
|
||||
%tmp1819 = bitcast i8* %tmp18 to %struct.CompAtom* ; <%struct.CompAtom*> [#uses=4]
|
||||
%tmp18 = tail call ptr @_Znam( i32 0 ) ; <ptr> [#uses=1]
|
||||
%tmp3286 = icmp eq i32 %n, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp3286, label %bb35, label %bb24
|
||||
|
||||
bb24: ; preds = %bb24, %entry
|
||||
%tmp9.0.reg2mem.0.rec = phi i32 [ %indvar.next, %bb24 ], [ 0, %entry ] ; <i32> [#uses=3]
|
||||
%tmp3.i.i = getelementptr %struct.CompAtom, %struct.CompAtom* %tmp1819, i32 %tmp9.0.reg2mem.0.rec, i32 0, i32 1 ; <double*> [#uses=0]
|
||||
%tmp5.i.i = getelementptr %struct.CompAtom, %struct.CompAtom* %tmp1819, i32 %tmp9.0.reg2mem.0.rec, i32 0, i32 2 ; <double*> [#uses=1]
|
||||
store double -9.999900e+04, double* %tmp5.i.i, align 4
|
||||
%tmp3.i.i = getelementptr %struct.CompAtom, ptr %tmp18, i32 %tmp9.0.reg2mem.0.rec, i32 0, i32 1 ; <ptr> [#uses=0]
|
||||
%tmp5.i.i = getelementptr %struct.CompAtom, ptr %tmp18, i32 %tmp9.0.reg2mem.0.rec, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
store double -9.999900e+04, ptr %tmp5.i.i, align 4
|
||||
%indvar.next = add i32 %tmp9.0.reg2mem.0.rec, 1 ; <i32> [#uses=2]
|
||||
%exitcond = icmp eq i32 %indvar.next, %n ; <i1> [#uses=1]
|
||||
br i1 %exitcond, label %bb35, label %bb24
|
||||
|
@ -33,8 +32,8 @@ bb35: ; preds = %bb24, %entry
|
|||
%tmp55 = srem i32 %i, 3 ; <i32> [#uses=1]
|
||||
%tmp56 = add i32 %tmp55, -1 ; <i32> [#uses=1]
|
||||
%tmp5657 = sitofp i32 %tmp56 to double ; <double> [#uses=1]
|
||||
%tmp15.i49 = getelementptr %struct.Lattice, %struct.Lattice* %this, i32 0, i32 0, i32 0 ; <double*> [#uses=1]
|
||||
%tmp16.i50 = load double, double* %tmp15.i49, align 4 ; <double> [#uses=1]
|
||||
%tmp15.i49 = getelementptr %struct.Lattice, ptr %this, i32 0, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp16.i50 = load double, ptr %tmp15.i49, align 4 ; <double> [#uses=1]
|
||||
%tmp17.i = fmul double %tmp5657, %tmp16.i50 ; <double> [#uses=1]
|
||||
%tmp20.i39 = fadd double %tmp17.i, %tmp17.i63 ; <double> [#uses=1]
|
||||
%tmp20.i23 = fadd double %tmp20.i39, %tmp17.i76 ; <double> [#uses=1]
|
||||
|
@ -45,22 +44,22 @@ bb58.preheader: ; preds = %bb35
|
|||
br label %bb58
|
||||
|
||||
bb58: ; preds = %bb58, %bb58.preheader
|
||||
%tmp20.i7 = getelementptr %struct.CompAtom, %struct.CompAtom* %d, i32 0, i32 2 ; <i32*> [#uses=2]
|
||||
%tmp25.i = getelementptr %struct.CompAtom, %struct.CompAtom* %tmp1819, i32 0, i32 2 ; <i32*> [#uses=2]
|
||||
%tmp74.i = load i32, i32* %tmp20.i7, align 1 ; <i32> [#uses=1]
|
||||
%tmp20.i7 = getelementptr %struct.CompAtom, ptr %d, i32 0, i32 2 ; <ptr> [#uses=2]
|
||||
%tmp25.i = getelementptr %struct.CompAtom, ptr %tmp18, i32 0, i32 2 ; <ptr> [#uses=2]
|
||||
%tmp74.i = load i32, ptr %tmp20.i7, align 1 ; <i32> [#uses=1]
|
||||
%tmp82.i = and i32 %tmp74.i, 134217728 ; <i32> [#uses=1]
|
||||
%tmp85.i = or i32 0, %tmp82.i ; <i32> [#uses=1]
|
||||
store i32 %tmp85.i, i32* %tmp25.i, align 1
|
||||
%tmp88.i = load i32, i32* %tmp20.i7, align 1 ; <i32> [#uses=1]
|
||||
store i32 %tmp85.i, ptr %tmp25.i, align 1
|
||||
%tmp88.i = load i32, ptr %tmp20.i7, align 1 ; <i32> [#uses=1]
|
||||
%tmp95.i = and i32 %tmp88.i, -268435456 ; <i32> [#uses=1]
|
||||
%tmp97.i = or i32 0, %tmp95.i ; <i32> [#uses=1]
|
||||
store i32 %tmp97.i, i32* %tmp25.i, align 1
|
||||
store i32 %tmp97.i, ptr %tmp25.i, align 1
|
||||
%tmp6.i = fadd double 0.000000e+00, %tmp20.i23 ; <double> [#uses=0]
|
||||
%exitcond96 = icmp eq i32 0, %smax ; <i1> [#uses=1]
|
||||
br i1 %exitcond96, label %bb81, label %bb58
|
||||
|
||||
bb81: ; preds = %bb58, %bb35
|
||||
ret %struct.CompAtom* %tmp1819
|
||||
ret ptr %tmp18
|
||||
}
|
||||
|
||||
declare i8* @_Znam(i32)
|
||||
declare ptr @_Znam(i32)
|
||||
|
|
|
@ -4,16 +4,16 @@
|
|||
%struct.CONSTRAINT = type { i32, i32, i32, i32 }
|
||||
%struct.FIRST_UNION = type { %struct.anon }
|
||||
%struct.FOURTH_UNION = type { %struct.CONSTRAINT }
|
||||
%struct.LIST = type { %struct.rec*, %struct.rec* }
|
||||
%struct.LIST = type { ptr, ptr }
|
||||
%struct.SECOND_UNION = type { { i16, i8, i8 } }
|
||||
%struct.THIRD_UNION = type { { [2 x i32], [2 x i32] } }
|
||||
%struct.anon = type { i8, i8, i32 }
|
||||
%struct.head_type = type { [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.THIRD_UNION, %struct.FOURTH_UNION, %struct.rec*, { %struct.rec* }, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, i32 }
|
||||
%struct.head_type = type { [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.THIRD_UNION, %struct.FOURTH_UNION, ptr, { ptr }, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32 }
|
||||
%struct.rec = type { %struct.head_type }
|
||||
%struct.symbol_type = type <{ [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, i16, i16, i8, i8, i8, i8 }>
|
||||
%struct.symbol_type = type <{ [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, i16, i8, i8, i8, i8 }>
|
||||
%struct.word_type = type { [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.THIRD_UNION, [4 x i8] }
|
||||
|
||||
define void @InsertSym_bb1163(%struct.rec** %s) {
|
||||
define void @InsertSym_bb1163(ptr %s) {
|
||||
; CHECK-LABEL: InsertSym_bb1163:
|
||||
; CHECK: # %bb.0: # %newFuncRoot
|
||||
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
|
@ -29,77 +29,65 @@ newFuncRoot:
|
|||
bb1233.exitStub: ; preds = %bb1163
|
||||
ret void
|
||||
bb1163: ; preds = %newFuncRoot
|
||||
%tmp1164 = load %struct.rec*, %struct.rec** %s, align 4 ; <%struct.rec*> [#uses=1]
|
||||
%tmp1165 = getelementptr %struct.rec, %struct.rec* %tmp1164, i32 0, i32 0 ; <%struct.head_type*> [#uses=1]
|
||||
%tmp11651166 = bitcast %struct.head_type* %tmp1165 to %struct.symbol_type* ; <%struct.symbol_type*> [#uses=1]
|
||||
%tmp1167 = getelementptr %struct.symbol_type, %struct.symbol_type* %tmp11651166, i32 0, i32 3 ; <%struct.rec**> [#uses=1]
|
||||
%tmp1168 = load %struct.rec*, %struct.rec** %tmp1167, align 1 ; <%struct.rec*> [#uses=2]
|
||||
%tmp1169 = load %struct.rec*, %struct.rec** %s, align 4 ; <%struct.rec*> [#uses=1]
|
||||
%tmp1170 = getelementptr %struct.rec, %struct.rec* %tmp1169, i32 0, i32 0 ; <%struct.head_type*> [#uses=1]
|
||||
%tmp11701171 = bitcast %struct.head_type* %tmp1170 to %struct.symbol_type* ; <%struct.symbol_type*> [#uses=1]
|
||||
%tmp1172 = getelementptr %struct.symbol_type, %struct.symbol_type* %tmp11701171, i32 0, i32 3 ; <%struct.rec**> [#uses=1]
|
||||
%tmp1173 = load %struct.rec*, %struct.rec** %tmp1172, align 1 ; <%struct.rec*> [#uses=2]
|
||||
%tmp1174 = getelementptr %struct.rec, %struct.rec* %tmp1173, i32 0, i32 0 ; <%struct.head_type*> [#uses=1]
|
||||
%tmp11741175 = bitcast %struct.head_type* %tmp1174 to %struct.word_type* ; <%struct.word_type*> [#uses=1]
|
||||
%tmp1176 = getelementptr %struct.word_type, %struct.word_type* %tmp11741175, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1]
|
||||
%tmp1177 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1176, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1]
|
||||
%tmp11771178 = bitcast { i16, i8, i8 }* %tmp1177 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
|
||||
%tmp1179 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp11771178, i32 0, i32 2 ; <i8*> [#uses=2]
|
||||
%tmp1164 = load ptr, ptr %s, align 4 ; <ptr> [#uses=1]
|
||||
%tmp1165 = getelementptr %struct.rec, ptr %tmp1164, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1167 = getelementptr %struct.symbol_type, ptr %tmp1165, i32 0, i32 3 ; <ptr> [#uses=1]
|
||||
%tmp1168 = load ptr, ptr %tmp1167, align 1 ; <ptr> [#uses=2]
|
||||
%tmp1169 = load ptr, ptr %s, align 4 ; <ptr> [#uses=1]
|
||||
%tmp1170 = getelementptr %struct.rec, ptr %tmp1169, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1172 = getelementptr %struct.symbol_type, ptr %tmp1170, i32 0, i32 3 ; <ptr> [#uses=1]
|
||||
%tmp1173 = load ptr, ptr %tmp1172, align 1 ; <ptr> [#uses=2]
|
||||
%tmp1174 = getelementptr %struct.rec, ptr %tmp1173, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1176 = getelementptr %struct.word_type, ptr %tmp1174, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
%tmp1177 = getelementptr %struct.SECOND_UNION, ptr %tmp1176, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1179 = getelementptr <{ i8, i8, i8, i8 }>, ptr %tmp1177, i32 0, i32 2 ; <ptr> [#uses=2]
|
||||
%mask1180 = and i8 1, 1 ; <i8> [#uses=2]
|
||||
%tmp1181 = load i8, i8* %tmp1179, align 1 ; <i8> [#uses=1]
|
||||
%tmp1181 = load i8, ptr %tmp1179, align 1 ; <i8> [#uses=1]
|
||||
%tmp1182 = shl i8 %mask1180, 7 ; <i8> [#uses=1]
|
||||
%tmp1183 = and i8 %tmp1181, 127 ; <i8> [#uses=1]
|
||||
%tmp1184 = or i8 %tmp1183, %tmp1182 ; <i8> [#uses=1]
|
||||
store i8 %tmp1184, i8* %tmp1179, align 1
|
||||
store i8 %tmp1184, ptr %tmp1179, align 1
|
||||
%mask1185 = and i8 %mask1180, 1 ; <i8> [#uses=0]
|
||||
%tmp1186 = getelementptr %struct.rec, %struct.rec* %tmp1173, i32 0, i32 0 ; <%struct.head_type*> [#uses=1]
|
||||
%tmp11861187 = bitcast %struct.head_type* %tmp1186 to %struct.word_type* ; <%struct.word_type*> [#uses=1]
|
||||
%tmp1188 = getelementptr %struct.word_type, %struct.word_type* %tmp11861187, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1]
|
||||
%tmp1189 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1188, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1]
|
||||
%tmp11891190 = bitcast { i16, i8, i8 }* %tmp1189 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
|
||||
%tmp1191 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp11891190, i32 0, i32 2 ; <i8*> [#uses=1]
|
||||
%tmp1192 = load i8, i8* %tmp1191, align 1 ; <i8> [#uses=1]
|
||||
%tmp1186 = getelementptr %struct.rec, ptr %tmp1173, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1188 = getelementptr %struct.word_type, ptr %tmp1186, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
%tmp1189 = getelementptr %struct.SECOND_UNION, ptr %tmp1188, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1191 = getelementptr <{ i8, i8, i8, i8 }>, ptr %tmp1189, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
%tmp1192 = load i8, ptr %tmp1191, align 1 ; <i8> [#uses=1]
|
||||
%tmp1193 = lshr i8 %tmp1192, 7 ; <i8> [#uses=1]
|
||||
%mask1194 = and i8 %tmp1193, 1 ; <i8> [#uses=2]
|
||||
%mask1195 = and i8 %mask1194, 1 ; <i8> [#uses=0]
|
||||
%tmp1196 = getelementptr %struct.rec, %struct.rec* %tmp1168, i32 0, i32 0 ; <%struct.head_type*> [#uses=1]
|
||||
%tmp11961197 = bitcast %struct.head_type* %tmp1196 to %struct.word_type* ; <%struct.word_type*> [#uses=1]
|
||||
%tmp1198 = getelementptr %struct.word_type, %struct.word_type* %tmp11961197, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1]
|
||||
%tmp1199 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1198, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1]
|
||||
%tmp11991200 = bitcast { i16, i8, i8 }* %tmp1199 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
|
||||
%tmp1201 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp11991200, i32 0, i32 1 ; <i8*> [#uses=2]
|
||||
%tmp1196 = getelementptr %struct.rec, ptr %tmp1168, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1198 = getelementptr %struct.word_type, ptr %tmp1196, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
%tmp1199 = getelementptr %struct.SECOND_UNION, ptr %tmp1198, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1201 = getelementptr <{ i8, i8, i8, i8 }>, ptr %tmp1199, i32 0, i32 1 ; <ptr> [#uses=2]
|
||||
%mask1202 = and i8 %mask1194, 1 ; <i8> [#uses=2]
|
||||
%tmp1203 = load i8, i8* %tmp1201, align 1 ; <i8> [#uses=1]
|
||||
%tmp1203 = load i8, ptr %tmp1201, align 1 ; <i8> [#uses=1]
|
||||
%tmp1204 = shl i8 %mask1202, 1 ; <i8> [#uses=1]
|
||||
%tmp1205 = and i8 %tmp1204, 2 ; <i8> [#uses=1]
|
||||
%tmp1206 = and i8 %tmp1203, -3 ; <i8> [#uses=1]
|
||||
%tmp1207 = or i8 %tmp1206, %tmp1205 ; <i8> [#uses=1]
|
||||
store i8 %tmp1207, i8* %tmp1201, align 1
|
||||
store i8 %tmp1207, ptr %tmp1201, align 1
|
||||
%mask1208 = and i8 %mask1202, 1 ; <i8> [#uses=0]
|
||||
%tmp1209 = getelementptr %struct.rec, %struct.rec* %tmp1168, i32 0, i32 0 ; <%struct.head_type*> [#uses=1]
|
||||
%tmp12091210 = bitcast %struct.head_type* %tmp1209 to %struct.word_type* ; <%struct.word_type*> [#uses=1]
|
||||
%tmp1211 = getelementptr %struct.word_type, %struct.word_type* %tmp12091210, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1]
|
||||
%tmp1212 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1211, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1]
|
||||
%tmp12121213 = bitcast { i16, i8, i8 }* %tmp1212 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
|
||||
%tmp1214 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp12121213, i32 0, i32 1 ; <i8*> [#uses=1]
|
||||
%tmp1215 = load i8, i8* %tmp1214, align 1 ; <i8> [#uses=1]
|
||||
%tmp1209 = getelementptr %struct.rec, ptr %tmp1168, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1211 = getelementptr %struct.word_type, ptr %tmp1209, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
%tmp1212 = getelementptr %struct.SECOND_UNION, ptr %tmp1211, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1214 = getelementptr <{ i8, i8, i8, i8 }>, ptr %tmp1212, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp1215 = load i8, ptr %tmp1214, align 1 ; <i8> [#uses=1]
|
||||
%tmp1216 = shl i8 %tmp1215, 6 ; <i8> [#uses=1]
|
||||
%tmp1217 = lshr i8 %tmp1216, 7 ; <i8> [#uses=1]
|
||||
%mask1218 = and i8 %tmp1217, 1 ; <i8> [#uses=2]
|
||||
%mask1219 = and i8 %mask1218, 1 ; <i8> [#uses=0]
|
||||
%tmp1220 = load %struct.rec*, %struct.rec** %s, align 4 ; <%struct.rec*> [#uses=1]
|
||||
%tmp1221 = getelementptr %struct.rec, %struct.rec* %tmp1220, i32 0, i32 0 ; <%struct.head_type*> [#uses=1]
|
||||
%tmp12211222 = bitcast %struct.head_type* %tmp1221 to %struct.word_type* ; <%struct.word_type*> [#uses=1]
|
||||
%tmp1223 = getelementptr %struct.word_type, %struct.word_type* %tmp12211222, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1]
|
||||
%tmp1224 = getelementptr %struct.SECOND_UNION, %struct.SECOND_UNION* %tmp1223, i32 0, i32 0 ; <{ i16, i8, i8 }*> [#uses=1]
|
||||
%tmp12241225 = bitcast { i16, i8, i8 }* %tmp1224 to <{ i8, i8, i8, i8 }>* ; <<{ i8, i8, i8, i8 }>*> [#uses=1]
|
||||
%tmp1226 = getelementptr <{ i8, i8, i8, i8 }>, <{ i8, i8, i8, i8 }>* %tmp12241225, i32 0, i32 1 ; <i8*> [#uses=2]
|
||||
%tmp1220 = load ptr, ptr %s, align 4 ; <ptr> [#uses=1]
|
||||
%tmp1221 = getelementptr %struct.rec, ptr %tmp1220, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1223 = getelementptr %struct.word_type, ptr %tmp1221, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
%tmp1224 = getelementptr %struct.SECOND_UNION, ptr %tmp1223, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp1226 = getelementptr <{ i8, i8, i8, i8 }>, ptr %tmp1224, i32 0, i32 1 ; <ptr> [#uses=2]
|
||||
%mask1227 = and i8 %mask1218, 1 ; <i8> [#uses=2]
|
||||
%tmp1228 = load i8, i8* %tmp1226, align 1 ; <i8> [#uses=1]
|
||||
%tmp1228 = load i8, ptr %tmp1226, align 1 ; <i8> [#uses=1]
|
||||
%tmp1229 = and i8 %mask1227, 1 ; <i8> [#uses=1]
|
||||
%tmp1230 = and i8 %tmp1228, -2 ; <i8> [#uses=1]
|
||||
%tmp1231 = or i8 %tmp1230, %tmp1229 ; <i8> [#uses=1]
|
||||
store i8 %tmp1231, i8* %tmp1226, align 1
|
||||
store i8 %tmp1231, ptr %tmp1226, align 1
|
||||
%mask1232 = and i8 %mask1227, 1 ; <i8> [#uses=0]
|
||||
br label %bb1233.exitStub
|
||||
}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
; RUN: llc < %s -mtriple=i386-pc-linux-gnu -relocation-model=pic -frame-pointer=all
|
||||
; PR2134
|
||||
|
||||
declare fastcc i8* @w_addchar(i8*, i32*, i32*, i8 signext ) nounwind
|
||||
declare fastcc ptr @w_addchar(ptr, ptr, ptr, i8 signext ) nounwind
|
||||
|
||||
define x86_stdcallcc i32 @parse_backslash(i8** inreg %word, i32* inreg %word_length, i32* inreg %max_length) nounwind {
|
||||
define x86_stdcallcc i32 @parse_backslash(ptr inreg %word, ptr inreg %word_length, ptr inreg %max_length) nounwind {
|
||||
entry:
|
||||
%tmp6 = load i8, i8* null, align 1 ; <i8> [#uses=1]
|
||||
%tmp6 = load i8, ptr null, align 1 ; <i8> [#uses=1]
|
||||
br label %bb13
|
||||
bb13: ; preds = %entry
|
||||
%tmp26 = call fastcc i8* @w_addchar( i8* null, i32* %word_length, i32* %max_length, i8 signext %tmp6 ) nounwind ; <i8*> [#uses=1]
|
||||
store i8* %tmp26, i8** %word, align 4
|
||||
%tmp26 = call fastcc ptr @w_addchar( ptr null, ptr %word_length, ptr %max_length, i8 signext %tmp6 ) nounwind ; <ptr> [#uses=1]
|
||||
store ptr %tmp26, ptr %word, align 4
|
||||
ret i32 0
|
||||
}
|
||||
|
|
|
@ -5,23 +5,23 @@
|
|||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
|
||||
target triple = "i386-pc-linux-gnu"
|
||||
%struct.__res_state = type { i32 }
|
||||
@__resp = thread_local global %struct.__res_state* @_res ; <%struct.__res_state**> [#uses=1]
|
||||
@_res = global %struct.__res_state zeroinitializer, section ".bss" ; <%struct.__res_state*> [#uses=1]
|
||||
@__resp = thread_local global ptr @_res ; <ptr> [#uses=1]
|
||||
@_res = global %struct.__res_state zeroinitializer, section ".bss" ; <ptr> [#uses=1]
|
||||
|
||||
@__libc_resp = hidden thread_local alias %struct.__res_state*, %struct.__res_state** @__resp ; <%struct.__res_state**> [#uses=2]
|
||||
@__libc_resp = hidden thread_local alias ptr, ptr @__resp ; <ptr> [#uses=2]
|
||||
|
||||
define i32 @foo() {
|
||||
; CHECK-LABEL: foo:
|
||||
; CHECK: leal __libc_resp@TLSLD
|
||||
entry:
|
||||
%retval = alloca i32 ; <i32*> [#uses=1]
|
||||
%retval = alloca i32 ; <ptr> [#uses=1]
|
||||
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
|
||||
%tmp = load %struct.__res_state*, %struct.__res_state** @__libc_resp, align 4 ; <%struct.__res_state*> [#uses=1]
|
||||
%tmp1 = getelementptr %struct.__res_state, %struct.__res_state* %tmp, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||
store i32 0, i32* %tmp1, align 4
|
||||
%tmp = load ptr, ptr @__libc_resp, align 4 ; <ptr> [#uses=1]
|
||||
%tmp1 = getelementptr %struct.__res_state, ptr %tmp, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
store i32 0, ptr %tmp1, align 4
|
||||
br label %return
|
||||
return: ; preds = %entry
|
||||
%retval2 = load i32, i32* %retval ; <i32> [#uses=1]
|
||||
%retval2 = load i32, ptr %retval ; <i32> [#uses=1]
|
||||
ret i32 %retval2
|
||||
}
|
||||
|
||||
|
@ -29,13 +29,13 @@ define i32 @bar() {
|
|||
; CHECK-LABEL: bar:
|
||||
; CHECK: leal __libc_resp@TLSLD
|
||||
entry:
|
||||
%retval = alloca i32 ; <i32*> [#uses=1]
|
||||
%retval = alloca i32 ; <ptr> [#uses=1]
|
||||
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
|
||||
%tmp = load %struct.__res_state*, %struct.__res_state** @__libc_resp, align 4 ; <%struct.__res_state*> [#uses=1]
|
||||
%tmp1 = getelementptr %struct.__res_state, %struct.__res_state* %tmp, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||
store i32 1, i32* %tmp1, align 4
|
||||
%tmp = load ptr, ptr @__libc_resp, align 4 ; <ptr> [#uses=1]
|
||||
%tmp1 = getelementptr %struct.__res_state, ptr %tmp, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
store i32 1, ptr %tmp1, align 4
|
||||
br label %return
|
||||
return: ; preds = %entry
|
||||
%retval2 = load i32, i32* %retval ; <i32> [#uses=1]
|
||||
%retval2 = load i32, ptr %retval ; <i32> [#uses=1]
|
||||
ret i32 %retval2
|
||||
}
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
; RUN: llc < %s -mtriple=i386-pc-linux-gnu
|
||||
; PR2138
|
||||
|
||||
%struct.__locale_struct = type { [13 x %struct.locale_data*], i16*, i32*, i32*, [13 x i8*] }
|
||||
%struct.anon = type { i8* }
|
||||
%struct.locale_data = type { i8*, i8*, i32, i32, { void (%struct.locale_data*)*, %struct.anon }, i32, i32, i32, [0 x %struct.locale_data_value] }
|
||||
%struct.locale_data_value = type { i32* }
|
||||
%struct.__locale_struct = type { [13 x ptr], ptr, ptr, ptr, [13 x ptr] }
|
||||
%struct.anon = type { ptr }
|
||||
%struct.locale_data = type { ptr, ptr, i32, i32, { ptr, %struct.anon }, i32, i32, i32, [0 x %struct.locale_data_value] }
|
||||
%struct.locale_data_value = type { ptr }
|
||||
|
||||
@wcstoll_l = alias i64 (i32*, i32**, i32, %struct.__locale_struct*), i64 (i32*, i32**, i32, %struct.__locale_struct*)* @__wcstoll_l
|
||||
@wcstoll_l = alias i64 (ptr, ptr, i32, ptr), ptr @__wcstoll_l
|
||||
|
||||
define i64 @____wcstoll_l_internal(i32* %nptr, i32** %endptr, i32 %base, i32 %group, %struct.__locale_struct* %loc) nounwind {
|
||||
define i64 @____wcstoll_l_internal(ptr %nptr, ptr %endptr, i32 %base, i32 %group, ptr %loc) nounwind {
|
||||
entry:
|
||||
%tmp27 = load i32, i32* null, align 4 ; <i32> [#uses=1]
|
||||
%tmp83 = getelementptr i32, i32* %nptr, i32 1 ; <i32*> [#uses=1]
|
||||
%tmp27 = load i32, ptr null, align 4 ; <i32> [#uses=1]
|
||||
%tmp83 = getelementptr i32, ptr %nptr, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp233 = add i32 0, -48 ; <i32> [#uses=1]
|
||||
br label %bb271.us
|
||||
bb271.us: ; preds = %entry
|
||||
|
@ -24,16 +24,16 @@ bb327.split: ; preds = %bb314.us
|
|||
bb374.outer: ; preds = %bb311.split, %bb271.us
|
||||
%tmp370371552.pn.in = phi i32 [ %tmp233, %bb271.us ], [ %tmp313, %bb311.split ] ; <i32> [#uses=1]
|
||||
%tmp278279.pn = phi i64 [ 0, %bb271.us ], [ %tmp373.reg2mem.0.ph, %bb311.split ] ; <i64> [#uses=1]
|
||||
%s.5.ph = phi i32* [ null, %bb271.us ], [ %tmp376.us, %bb311.split ] ; <i32*> [#uses=1]
|
||||
%s.5.ph = phi ptr [ null, %bb271.us ], [ %tmp376.us, %bb311.split ] ; <ptr> [#uses=1]
|
||||
%tmp366367550.pn = sext i32 %base to i64 ; <i64> [#uses=1]
|
||||
%tmp370371552.pn = zext i32 %tmp370371552.pn.in to i64 ; <i64> [#uses=1]
|
||||
%tmp369551.pn = mul i64 %tmp278279.pn, %tmp366367550.pn ; <i64> [#uses=1]
|
||||
%tmp373.reg2mem.0.ph = add i64 %tmp370371552.pn, %tmp369551.pn ; <i64> [#uses=1]
|
||||
br label %bb374.us
|
||||
bb374.us: ; preds = %bb314.us, %bb374.outer
|
||||
%tmp376.us = getelementptr i32, i32* %s.5.ph, i32 0 ; <i32*> [#uses=3]
|
||||
%tmp378.us = load i32, i32* %tmp376.us, align 4 ; <i32> [#uses=2]
|
||||
%tmp302.us = icmp eq i32* %tmp376.us, %tmp83 ; <i1> [#uses=1]
|
||||
%tmp376.us = getelementptr i32, ptr %s.5.ph, i32 0 ; <ptr> [#uses=3]
|
||||
%tmp378.us = load i32, ptr %tmp376.us, align 4 ; <i32> [#uses=2]
|
||||
%tmp302.us = icmp eq ptr %tmp376.us, %tmp83 ; <i1> [#uses=1]
|
||||
%bothcond484.us = or i1 false, %tmp302.us ; <i1> [#uses=1]
|
||||
br i1 %bothcond484.us, label %bb383, label %bb305.us
|
||||
bb305.us: ; preds = %bb374.us
|
||||
|
@ -45,6 +45,6 @@ bb383: ; preds = %bb374.us, %bb311.split
|
|||
ret i64 0
|
||||
}
|
||||
|
||||
define i64 @__wcstoll_l(i32*, i32**, i32, %struct.__locale_struct*) nounwind {
|
||||
define i64 @__wcstoll_l(ptr, ptr, i32, ptr) nounwind {
|
||||
ret i64 0
|
||||
}
|
||||
|
|
|
@ -1,49 +1,45 @@
|
|||
; RUN: llc < %s -mtriple=i386-apple-darwin -asm-verbose | grep "#" | not grep -v "##"
|
||||
|
||||
%struct.AGenericCall = type { %struct.AGenericManager*, %struct.ComponentParameters*, i32* }
|
||||
%struct.AGenericCall = type { ptr, ptr, ptr }
|
||||
%struct.AGenericManager = type <{ i8 }>
|
||||
%struct.ComponentInstanceRecord = type opaque
|
||||
%struct.ComponentParameters = type { [1 x i64] }
|
||||
|
||||
define i32 @_ZN12AGenericCall10MapIDPtrAtEsRP23ComponentInstanceRecord(%struct.AGenericCall* %this, i16 signext %param, %struct.ComponentInstanceRecord** %instance) {
|
||||
define i32 @_ZN12AGenericCall10MapIDPtrAtEsRP23ComponentInstanceRecord(ptr %this, i16 signext %param, ptr %instance) {
|
||||
entry:
|
||||
%tmp4 = icmp slt i16 %param, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp4, label %cond_true, label %cond_next
|
||||
|
||||
cond_true: ; preds = %entry
|
||||
%tmp1415 = shl i16 %param, 3 ; <i16> [#uses=1]
|
||||
%tmp17 = getelementptr %struct.AGenericCall, %struct.AGenericCall* %this, i32 0, i32 1 ; <%struct.ComponentParameters**> [#uses=1]
|
||||
%tmp18 = load %struct.ComponentParameters*, %struct.ComponentParameters** %tmp17, align 8 ; <%struct.ComponentParameters*> [#uses=1]
|
||||
%tmp1920 = bitcast %struct.ComponentParameters* %tmp18 to i8* ; <i8*> [#uses=1]
|
||||
%tmp17 = getelementptr %struct.AGenericCall, ptr %this, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp18 = load ptr, ptr %tmp17, align 8 ; <ptr> [#uses=1]
|
||||
%tmp212223 = sext i16 %tmp1415 to i64 ; <i64> [#uses=1]
|
||||
%tmp24 = getelementptr i8, i8* %tmp1920, i64 %tmp212223 ; <i8*> [#uses=1]
|
||||
%tmp2425 = bitcast i8* %tmp24 to i64* ; <i64*> [#uses=1]
|
||||
%tmp28 = load i64, i64* %tmp2425, align 8 ; <i64> [#uses=1]
|
||||
%tmp2829 = inttoptr i64 %tmp28 to i32* ; <i32*> [#uses=1]
|
||||
%tmp31 = getelementptr %struct.AGenericCall, %struct.AGenericCall* %this, i32 0, i32 2 ; <i32**> [#uses=1]
|
||||
store i32* %tmp2829, i32** %tmp31, align 8
|
||||
%tmp24 = getelementptr i8, ptr %tmp18, i64 %tmp212223 ; <ptr> [#uses=1]
|
||||
%tmp28 = load i64, ptr %tmp24, align 8 ; <i64> [#uses=1]
|
||||
%tmp2829 = inttoptr i64 %tmp28 to ptr ; <ptr> [#uses=1]
|
||||
%tmp31 = getelementptr %struct.AGenericCall, ptr %this, i32 0, i32 2 ; <ptr> [#uses=1]
|
||||
store ptr %tmp2829, ptr %tmp31, align 8
|
||||
br label %cond_next
|
||||
|
||||
cond_next: ; preds = %cond_true, %entry
|
||||
%tmp4243 = shl i16 %param, 3 ; <i16> [#uses=1]
|
||||
%tmp46 = getelementptr %struct.AGenericCall, %struct.AGenericCall* %this, i32 0, i32 1 ; <%struct.ComponentParameters**> [#uses=1]
|
||||
%tmp47 = load %struct.ComponentParameters*, %struct.ComponentParameters** %tmp46, align 8 ; <%struct.ComponentParameters*> [#uses=1]
|
||||
%tmp4849 = bitcast %struct.ComponentParameters* %tmp47 to i8* ; <i8*> [#uses=1]
|
||||
%tmp46 = getelementptr %struct.AGenericCall, ptr %this, i32 0, i32 1 ; <ptr> [#uses=1]
|
||||
%tmp47 = load ptr, ptr %tmp46, align 8 ; <ptr> [#uses=1]
|
||||
%tmp505152 = sext i16 %tmp4243 to i64 ; <i64> [#uses=1]
|
||||
%tmp53 = getelementptr i8, i8* %tmp4849, i64 %tmp505152 ; <i8*> [#uses=1]
|
||||
%tmp5354 = bitcast i8* %tmp53 to i64* ; <i64*> [#uses=1]
|
||||
%tmp58 = load i64, i64* %tmp5354, align 8 ; <i64> [#uses=1]
|
||||
%tmp53 = getelementptr i8, ptr %tmp47, i64 %tmp505152 ; <ptr> [#uses=1]
|
||||
%tmp58 = load i64, ptr %tmp53, align 8 ; <i64> [#uses=1]
|
||||
%tmp59 = icmp eq i64 %tmp58, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp59, label %UnifiedReturnBlock, label %cond_true63
|
||||
|
||||
cond_true63: ; preds = %cond_next
|
||||
%tmp65 = getelementptr %struct.AGenericCall, %struct.AGenericCall* %this, i32 0, i32 0 ; <%struct.AGenericManager**> [#uses=1]
|
||||
%tmp66 = load %struct.AGenericManager*, %struct.AGenericManager** %tmp65, align 8 ; <%struct.AGenericManager*> [#uses=1]
|
||||
%tmp69 = tail call i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord( %struct.AGenericManager* %tmp66, %struct.ComponentInstanceRecord** %instance ) ; <i32> [#uses=1]
|
||||
%tmp65 = getelementptr %struct.AGenericCall, ptr %this, i32 0, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp66 = load ptr, ptr %tmp65, align 8 ; <ptr> [#uses=1]
|
||||
%tmp69 = tail call i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord( ptr %tmp66, ptr %instance ) ; <i32> [#uses=1]
|
||||
ret i32 %tmp69
|
||||
|
||||
UnifiedReturnBlock: ; preds = %cond_next
|
||||
ret i32 undef
|
||||
}
|
||||
|
||||
declare i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord(%struct.AGenericManager*, %struct.ComponentInstanceRecord**)
|
||||
declare i32 @_ZN15AGenericManager24DefaultComponentInstanceERP23ComponentInstanceRecord(ptr, ptr)
|
||||
|
|
|
@ -19,6 +19,6 @@ entry:
|
|||
%tmp678 = shufflevector <4 x float> %tmp662, <4 x float> undef, <4 x i32> < i32 1, i32 1, i32 1, i32 1 > ; <<4 x float>> [#uses=1]
|
||||
%tmp753 = fmul <4 x float> zeroinitializer, %tmp678 ; <<4 x float>> [#uses=1]
|
||||
%tmp754 = fsub <4 x float> zeroinitializer, %tmp753 ; <<4 x float>> [#uses=1]
|
||||
store <4 x float> %tmp754, <4 x float>* null, align 16
|
||||
store <4 x float> %tmp754, ptr null, align 16
|
||||
unreachable
|
||||
}
|
||||
|
|
|
@ -2,17 +2,17 @@
|
|||
; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=pic -frame-pointer=all | FileCheck %s
|
||||
; Don't fold re-materialized load into a two address instruction
|
||||
|
||||
%"struct.Smarts::Runnable" = type { i32 (...)**, i32 }
|
||||
%struct.__sbuf = type { i8*, i32 }
|
||||
%"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %struct.__sbuf, [8 x %struct.__sbuf], i32, %struct.__sbuf*, %"struct.std::locale" }
|
||||
%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
|
||||
%"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
|
||||
%"struct.std::locale::_Impl" = type { i32, %"struct.Smarts::Runnable"**, i32, %"struct.Smarts::Runnable"**, i8** }
|
||||
@_ZTVSt9basic_iosIcSt11char_traitsIcEE = external constant [4 x i32 (...)*] ; <[4 x i32 (...)*]*> [#uses=1]
|
||||
@_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE = external constant [4 x i8*] ; <[4 x i8*]*> [#uses=1]
|
||||
@_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE = external constant [10 x i32 (...)*] ; <[10 x i32 (...)*]*> [#uses=2]
|
||||
@_ZTVSt15basic_streambufIcSt11char_traitsIcEE = external constant [16 x i32 (...)*] ; <[16 x i32 (...)*]*> [#uses=1]
|
||||
@_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE = external constant [16 x i32 (...)*] ; <[16 x i32 (...)*]*> [#uses=1]
|
||||
%"struct.Smarts::Runnable" = type { ptr, i32 }
|
||||
%struct.__sbuf = type { ptr, i32 }
|
||||
%"struct.std::ios_base" = type { ptr, i32, i32, i32, i32, i32, ptr, %struct.__sbuf, [8 x %struct.__sbuf], i32, ptr, %"struct.std::locale" }
|
||||
%"struct.std::ios_base::_Callback_list" = type { ptr, ptr, i32, i32 }
|
||||
%"struct.std::locale" = type { ptr }
|
||||
%"struct.std::locale::_Impl" = type { i32, ptr, i32, ptr, ptr }
|
||||
@_ZTVSt9basic_iosIcSt11char_traitsIcEE = external constant [4 x ptr] ; <ptr> [#uses=1]
|
||||
@_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE = external constant [4 x ptr] ; <ptr> [#uses=1]
|
||||
@_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE = external constant [10 x ptr] ; <ptr> [#uses=2]
|
||||
@_ZTVSt15basic_streambufIcSt11char_traitsIcEE = external constant [16 x ptr] ; <ptr> [#uses=1]
|
||||
@_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE = external constant [16 x ptr] ; <ptr> [#uses=1]
|
||||
|
||||
define void @_GLOBAL__I__ZN5Pooma5pinfoE() nounwind {
|
||||
; CHECK-LABEL: _GLOBAL__I__ZN5Pooma5pinfoE:
|
||||
|
@ -47,26 +47,23 @@ define void @_GLOBAL__I__ZN5Pooma5pinfoE() nounwind {
|
|||
; CHECK-NEXT: movl %eax, 0
|
||||
; CHECK-NEXT: ud2
|
||||
entry:
|
||||
store i32 (...)** getelementptr ([10 x i32 (...)*], [10 x i32 (...)*]* @_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE, i32 0, i32 8), i32 (...)*** null, align 4
|
||||
%tmp96.i.i142.i = call i8* @_Znwm( i32 180 ) nounwind ; <i8*> [#uses=2]
|
||||
call void @_ZNSt8ios_baseC2Ev( %"struct.std::ios_base"* null ) nounwind
|
||||
store i32 (...)** getelementptr ([4 x i32 (...)*], [4 x i32 (...)*]* @_ZTVSt9basic_iosIcSt11char_traitsIcEE, i32 0, i32 2), i32 (...)*** null, align 4
|
||||
store i32 (...)** null, i32 (...)*** null, align 4
|
||||
%ctg2242.i.i163.i = getelementptr i8, i8* %tmp96.i.i142.i, i32 0 ; <i8*> [#uses=1]
|
||||
%tmp150.i.i164.i = load i8*, i8** getelementptr ([4 x i8*], [4 x i8*]* @_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE, i32 0, i64 2), align 4 ; <i8*> [#uses=1]
|
||||
%tmp150151.i.i165.i = bitcast i8* %tmp150.i.i164.i to i32 (...)** ; <i32 (...)**> [#uses=1]
|
||||
%tmp153.i.i166.i = bitcast i8* %ctg2242.i.i163.i to i32 (...)*** ; <i32 (...)***> [#uses=1]
|
||||
store i32 (...)** %tmp150151.i.i165.i, i32 (...)*** %tmp153.i.i166.i, align 4
|
||||
%tmp159.i.i167.i = bitcast i8* %tmp96.i.i142.i to i32 (...)*** ; <i32 (...)***> [#uses=1]
|
||||
store i32 (...)** getelementptr ([10 x i32 (...)*], [10 x i32 (...)*]* @_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE, i32 0, i32 3), i32 (...)*** %tmp159.i.i167.i, align 4
|
||||
store i32 (...)** getelementptr ([16 x i32 (...)*], [16 x i32 (...)*]* @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i32 0, i32 2), i32 (...)*** null, align 4
|
||||
call void @_ZNSt6localeC1Ev( %"struct.std::locale"* null ) nounwind
|
||||
store i32 (...)** getelementptr ([16 x i32 (...)*], [16 x i32 (...)*]* @_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE, i32 0, i32 2), i32 (...)*** null, align 4
|
||||
store ptr getelementptr ([10 x ptr], ptr @_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE, i32 0, i32 8), ptr null, align 4
|
||||
%tmp96.i.i142.i = call ptr @_Znwm( i32 180 ) nounwind ; <ptr> [#uses=2]
|
||||
call void @_ZNSt8ios_baseC2Ev( ptr null ) nounwind
|
||||
store ptr getelementptr ([4 x ptr], ptr @_ZTVSt9basic_iosIcSt11char_traitsIcEE, i32 0, i32 2), ptr null, align 4
|
||||
store ptr null, ptr null, align 4
|
||||
%ctg2242.i.i163.i = getelementptr i8, ptr %tmp96.i.i142.i, i32 0 ; <ptr> [#uses=1]
|
||||
%tmp150.i.i164.i = load ptr, ptr getelementptr ([4 x ptr], ptr @_ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE, i32 0, i64 2), align 4 ; <ptr> [#uses=1]
|
||||
store ptr %tmp150.i.i164.i, ptr %ctg2242.i.i163.i, align 4
|
||||
store ptr getelementptr ([10 x ptr], ptr @_ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE, i32 0, i32 3), ptr %tmp96.i.i142.i, align 4
|
||||
store ptr getelementptr ([16 x ptr], ptr @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i32 0, i32 2), ptr null, align 4
|
||||
call void @_ZNSt6localeC1Ev( ptr null ) nounwind
|
||||
store ptr getelementptr ([16 x ptr], ptr @_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE, i32 0, i32 2), ptr null, align 4
|
||||
unreachable
|
||||
}
|
||||
|
||||
declare i8* @_Znwm(i32)
|
||||
declare ptr @_Znwm(i32)
|
||||
|
||||
declare void @_ZNSt8ios_baseC2Ev(%"struct.std::ios_base"*)
|
||||
declare void @_ZNSt8ios_baseC2Ev(ptr)
|
||||
|
||||
declare void @_ZNSt6localeC1Ev(%"struct.std::locale"*) nounwind
|
||||
declare void @_ZNSt6localeC1Ev(ptr) nounwind
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
|
||||
|
||||
%struct..0anon = type { i32 }
|
||||
%struct.binding_level = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.binding_level*, i8, i8, i8, i8, i8, i32, %struct.tree_node* }
|
||||
%struct.binding_level = type { ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i32, ptr }
|
||||
%struct.lang_decl = type opaque
|
||||
%struct.rtx_def = type { i16, i8, i8, [1 x %struct..0anon] }
|
||||
%struct.tree_decl = type { [12 x i8], i8*, i32, %struct.tree_node*, i32, i8, i8, i8, i8, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct..0anon, { %struct.rtx_def* }, %struct.tree_node*, %struct.lang_decl* }
|
||||
%struct.tree_decl = type { [12 x i8], ptr, i32, ptr, i32, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct..0anon, { ptr }, ptr, ptr }
|
||||
%struct.tree_node = type { %struct.tree_decl }
|
||||
|
||||
define fastcc %struct.tree_node* @pushdecl(%struct.tree_node* %x) nounwind {
|
||||
define fastcc ptr @pushdecl(ptr %x) nounwind {
|
||||
; CHECK-LABEL: pushdecl:
|
||||
; CHECK: # %bb.0: # %entry
|
||||
; CHECK-NEXT: movb $1, %al
|
||||
|
@ -23,40 +23,40 @@ define fastcc %struct.tree_node* @pushdecl(%struct.tree_node* %x) nounwind {
|
|||
; CHECK-NEXT: xorl %eax, %eax
|
||||
; CHECK-NEXT: retl
|
||||
entry:
|
||||
%tmp3.i40 = icmp eq %struct.binding_level* null, null ; <i1> [#uses=2]
|
||||
%tmp3.i40 = icmp eq ptr null, null ; <i1> [#uses=2]
|
||||
br label %bb140
|
||||
bb140: ; preds = %entry
|
||||
br i1 %tmp3.i40, label %bb160, label %bb17.i
|
||||
bb17.i: ; preds = %bb140
|
||||
ret %struct.tree_node* null
|
||||
ret ptr null
|
||||
bb143: ; preds = %entry
|
||||
%tmp8.i43 = load %struct.tree_node*, %struct.tree_node** null, align 4 ; <%struct.tree_node*> [#uses=1]
|
||||
%tmp8.i43 = load ptr, ptr null, align 4 ; <ptr> [#uses=1]
|
||||
br i1 %tmp3.i40, label %bb160, label %bb9.i48
|
||||
bb9.i48: ; preds = %bb143
|
||||
ret %struct.tree_node* null
|
||||
ret ptr null
|
||||
bb160: ; preds = %bb143, %bb140
|
||||
%t.0.reg2mem.0 = phi %struct.tree_node* [ null, %bb140 ], [ %tmp8.i43, %bb143 ] ; <%struct.tree_node*> [#uses=1]
|
||||
%tmp162 = icmp eq %struct.tree_node* %t.0.reg2mem.0, null ; <i1> [#uses=2]
|
||||
%t.0.reg2mem.0 = phi ptr [ null, %bb140 ], [ %tmp8.i43, %bb143 ] ; <ptr> [#uses=1]
|
||||
%tmp162 = icmp eq ptr %t.0.reg2mem.0, null ; <i1> [#uses=2]
|
||||
br i1 %tmp162, label %bb174, label %bb165
|
||||
bb165: ; preds = %bb160
|
||||
br label %bb174
|
||||
bb174: ; preds = %bb165, %bb160
|
||||
%line.0 = phi i32 [ 0, %bb165 ], [ undef, %bb160 ] ; <i32> [#uses=1]
|
||||
%file.0 = phi i8* [ null, %bb165 ], [ undef, %bb160 ] ; <i8*> [#uses=1]
|
||||
%file.0 = phi ptr [ null, %bb165 ], [ undef, %bb160 ] ; <ptr> [#uses=1]
|
||||
br i1 %tmp162, label %bb344, label %bb73.i
|
||||
bb73.i: ; preds = %bb174
|
||||
br i1 false, label %bb226.i, label %bb220.i
|
||||
bb220.i: ; preds = %bb73.i
|
||||
ret %struct.tree_node* null
|
||||
ret ptr null
|
||||
bb226.i: ; preds = %bb73.i
|
||||
br i1 false, label %bb260, label %bb273.i
|
||||
bb273.i: ; preds = %bb226.i
|
||||
ret %struct.tree_node* null
|
||||
ret ptr null
|
||||
bb260: ; preds = %bb226.i
|
||||
tail call void (i8*, i32, ...) @pedwarn_with_file_and_line( i8* %file.0, i32 %line.0, i8* null ) nounwind
|
||||
ret %struct.tree_node* null
|
||||
tail call void (ptr, i32, ...) @pedwarn_with_file_and_line( ptr %file.0, i32 %line.0, ptr null ) nounwind
|
||||
ret ptr null
|
||||
bb344: ; preds = %bb174
|
||||
ret %struct.tree_node* null
|
||||
ret ptr null
|
||||
}
|
||||
|
||||
declare void @pedwarn_with_file_and_line(i8*, i32, ...) nounwind
|
||||
declare void @pedwarn_with_file_and_line(ptr, i32, ...) nounwind
|
||||
|
|
|
@ -4,25 +4,25 @@
|
|||
|
||||
%struct.CGPoint = type { double, double }
|
||||
%struct.NSArray = type { %struct.NSObject }
|
||||
%struct.NSAssertionHandler = type { %struct.NSObject, i8* }
|
||||
%struct.NSDockTile = type { %struct.NSObject, %struct.NSObject*, i8*, %struct.NSView*, %struct.NSView*, %struct.NSView*, %struct.NSArray*, %struct._SPFlags, %struct.CGPoint, [5 x %struct.NSObject*] }
|
||||
%struct.NSDocument = type { %struct.NSObject, %struct.NSWindow*, %struct.NSObject*, %struct.NSURL*, %struct.NSArray*, %struct.NSPrintInfo*, i64, %struct.NSView*, %struct.NSObject*, %struct.NSObject*, %struct.NSUndoManager*, %struct._BCFlags2, %struct.NSArray* }
|
||||
%struct.AA = type { %struct.NSObject, %struct.NSDocument*, %struct.NSURL*, %struct.NSArray*, %struct.NSArray* }
|
||||
%struct.NSError = type { %struct.NSObject, i8*, i64, %struct.NSArray*, %struct.NSArray* }
|
||||
%struct.NSImage = type { %struct.NSObject, %struct.NSArray*, %struct.CGPoint, %struct._BCFlags2, %struct.NSObject*, %struct._NSImageAuxiliary* }
|
||||
%struct.NSAssertionHandler = type { %struct.NSObject, ptr }
|
||||
%struct.NSDockTile = type { %struct.NSObject, ptr, ptr, ptr, ptr, ptr, ptr, %struct._SPFlags, %struct.CGPoint, [5 x ptr] }
|
||||
%struct.NSDocument = type { %struct.NSObject, ptr, ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr, ptr, %struct._BCFlags2, ptr }
|
||||
%struct.AA = type { %struct.NSObject, ptr, ptr, ptr, ptr }
|
||||
%struct.NSError = type { %struct.NSObject, ptr, i64, ptr, ptr }
|
||||
%struct.NSImage = type { %struct.NSObject, ptr, %struct.CGPoint, %struct._BCFlags2, ptr, ptr }
|
||||
%struct.NSMutableArray = type { %struct.NSArray }
|
||||
%struct.NSObject = type { %struct.NSObject* }
|
||||
%struct.NSPrintInfo = type { %struct.NSObject, %struct.NSMutableArray*, %struct.NSObject* }
|
||||
%struct.NSObject = type { ptr }
|
||||
%struct.NSPrintInfo = type { %struct.NSObject, ptr, ptr }
|
||||
%struct.NSRect = type { %struct.CGPoint, %struct.CGPoint }
|
||||
%struct.NSRegion = type opaque
|
||||
%struct.NSResponder = type { %struct.NSObject, %struct.NSObject* }
|
||||
%struct.NSToolbar = type { %struct.NSObject, %struct.NSArray*, %struct.NSMutableArray*, %struct.NSMutableArray*, %struct.NSArray*, %struct.NSObject*, %struct.NSArray*, i8*, %struct.NSObject*, %struct.NSWindow*, %struct.NSObject*, %struct.NSObject*, i64, %struct._BCFlags2, i64, %struct.NSObject* }
|
||||
%struct.NSURL = type { %struct.NSObject, %struct.NSArray*, %struct.NSURL*, i8*, i8* }
|
||||
%struct.NSUndoManager = type { %struct.NSObject, %struct.NSObject*, %struct.NSObject*, %struct.NSArray*, i64, %struct._SPFlags, %struct.NSObject*, i8*, i8*, i8* }
|
||||
%struct.NSView = type { %struct.NSResponder, %struct.NSRect, %struct.NSRect, %struct.NSObject*, %struct.NSObject*, %struct.NSWindow*, %struct.NSObject*, %struct.NSObject*, %struct.NSObject*, %struct.NSObject*, %struct._NSViewAuxiliary*, %struct._BCFlags, %struct._SPFlags }
|
||||
%struct.NSWindow = type { %struct.NSResponder, %struct.NSRect, %struct.NSObject*, %struct.NSObject*, %struct.NSResponder*, %struct.NSView*, %struct.NSView*, %struct.NSObject*, %struct.NSObject*, i32, i64, i32, %struct.NSArray*, %struct.NSObject*, i8, i8, i8, i8, i8*, i8*, %struct.NSImage*, i32, %struct.NSMutableArray*, %struct.NSURL*, %struct.CGPoint*, %struct.NSArray*, %struct.NSArray*, %struct.__wFlags, %struct.NSObject*, %struct.NSView*, %struct.NSWindowAuxiliary* }
|
||||
%struct.NSWindowAuxiliary = type { %struct.NSObject, %struct.NSArray*, %struct.NSDockTile*, %struct._NSWindowAnimator*, %struct.NSRect, i32, %struct.NSAssertionHandler*, %struct.NSUndoManager*, %struct.NSWindowController*, %struct.NSAssertionHandler*, %struct.NSObject*, i32, %struct.__CFRunLoopObserver*, %struct.__CFRunLoopObserver*, %struct.NSArray*, %struct.NSArray*, %struct.NSView*, %struct.NSRegion*, %struct.NSWindow*, %struct.NSWindow*, %struct.NSArray*, %struct.NSMutableArray*, %struct.NSArray*, %struct.NSWindow*, %struct.CGPoint, %struct.NSObject*, i8*, i8*, i32, %struct.NSObject*, %struct.NSArray*, double, %struct.CGPoint, %struct.NSArray*, %struct.NSMutableArray*, %struct.NSMutableArray*, %struct.NSWindow*, %struct.NSView*, %struct.NSArray*, %struct.__auxWFlags, i32, i8*, double, %struct.NSObject*, %struct.NSObject*, %struct.__CFArray*, %struct.NSRegion*, %struct.NSArray*, %struct.NSRect, %struct.NSToolbar*, %struct.NSRect, %struct.NSMutableArray* }
|
||||
%struct.NSWindowController = type { %struct.NSResponder, %struct.NSWindow*, %struct.NSArray*, %struct.NSDocument*, %struct.NSArray*, %struct.NSObject*, %struct._SPFlags, %struct.NSArray*, %struct.NSObject* }
|
||||
%struct.NSResponder = type { %struct.NSObject, ptr }
|
||||
%struct.NSToolbar = type { %struct.NSObject, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, %struct._BCFlags2, i64, ptr }
|
||||
%struct.NSURL = type { %struct.NSObject, ptr, ptr, ptr, ptr }
|
||||
%struct.NSUndoManager = type { %struct.NSObject, ptr, ptr, ptr, i64, %struct._SPFlags, ptr, ptr, ptr, ptr }
|
||||
%struct.NSView = type { %struct.NSResponder, %struct.NSRect, %struct.NSRect, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct._BCFlags, %struct._SPFlags }
|
||||
%struct.NSWindow = type { %struct.NSResponder, %struct.NSRect, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i64, i32, ptr, ptr, i8, i8, i8, i8, ptr, ptr, ptr, i32, ptr, ptr, ptr, ptr, ptr, %struct.__wFlags, ptr, ptr, ptr }
|
||||
%struct.NSWindowAuxiliary = type { %struct.NSObject, ptr, ptr, ptr, %struct.NSRect, i32, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.CGPoint, ptr, ptr, ptr, i32, ptr, ptr, double, %struct.CGPoint, ptr, ptr, ptr, ptr, ptr, ptr, %struct.__auxWFlags, i32, ptr, double, ptr, ptr, ptr, ptr, ptr, %struct.NSRect, ptr, %struct.NSRect, ptr }
|
||||
%struct.NSWindowController = type { %struct.NSResponder, ptr, ptr, ptr, ptr, ptr, %struct._SPFlags, ptr, ptr }
|
||||
%struct._BCFlags = type <{ i8, i8, i8, i8 }>
|
||||
%struct._BCFlags2 = type <{ i8, [3 x i8] }>
|
||||
%struct._NSImageAuxiliary = type opaque
|
||||
|
@ -33,18 +33,18 @@
|
|||
%struct.__CFRunLoopObserver = type opaque
|
||||
%struct.__auxWFlags = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i16 }
|
||||
%struct.__wFlags = type <{ i8, i8, i8, i8, i8, i8, i8, i8 }>
|
||||
%struct._message_ref_t = type { %struct.NSObject* (%struct.NSObject*, %struct._message_ref_t*, ...)*, %struct.objc_selector* }
|
||||
%struct._message_ref_t = type { ptr, ptr }
|
||||
%struct.objc_selector = type opaque
|
||||
@"\01L_OBJC_MESSAGE_REF_228" = internal global %struct._message_ref_t zeroinitializer ; <%struct._message_ref_t*> [#uses=1]
|
||||
@llvm.used1 = appending global [1 x i8*] [ i8* bitcast (void (%struct.AA*, %struct._message_ref_t*, %struct.NSError*, i64, %struct.NSObject*, %struct.objc_selector*, i8*)* @"-[AA BB:optionIndex:delegate:CC:contextInfo:]" to i8*) ], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
|
||||
@"\01L_OBJC_MESSAGE_REF_228" = internal global %struct._message_ref_t zeroinitializer ; <ptr> [#uses=1]
|
||||
@llvm.used1 = appending global [1 x ptr] [ ptr @"-[AA BB:optionIndex:delegate:CC:contextInfo:]" ], section "llvm.metadata" ; <ptr> [#uses=0]
|
||||
|
||||
define void @"-[AA BB:optionIndex:delegate:CC:contextInfo:]"(%struct.AA* %self, %struct._message_ref_t* %_cmd, %struct.NSError* %inError, i64 %inOptionIndex, %struct.NSObject* %inDelegate, %struct.objc_selector* %inDidRecoverSelector, i8* %inContextInfo) {
|
||||
define void @"-[AA BB:optionIndex:delegate:CC:contextInfo:]"(ptr %self, ptr %_cmd, ptr %inError, i64 %inOptionIndex, ptr %inDelegate, ptr %inDidRecoverSelector, ptr %inContextInfo) {
|
||||
entry:
|
||||
%tmp105 = load %struct.NSArray*, %struct.NSArray** null, align 8 ; <%struct.NSArray*> [#uses=1]
|
||||
%tmp107 = load %struct.NSObject*, %struct.NSObject** null, align 8 ; <%struct.NSObject*> [#uses=1]
|
||||
call void null( %struct.NSObject* %tmp107, %struct._message_ref_t* @"\01L_OBJC_MESSAGE_REF_228", %struct.NSArray* %tmp105, i8 signext 0 )
|
||||
%tmp111 = call %struct.NSObject* (%struct.NSObject*, %struct.objc_selector*, ...) @objc_msgSend( %struct.NSObject* null, %struct.objc_selector* null, i32 0, i8* null ) ; <%struct.NSObject*> [#uses=0]
|
||||
%tmp105 = load ptr, ptr null, align 8 ; <ptr> [#uses=1]
|
||||
%tmp107 = load ptr, ptr null, align 8 ; <ptr> [#uses=1]
|
||||
call void null( ptr %tmp107, ptr @"\01L_OBJC_MESSAGE_REF_228", ptr %tmp105, i8 signext 0 )
|
||||
%tmp111 = call ptr (ptr, ptr, ...) @objc_msgSend( ptr null, ptr null, i32 0, ptr null ) ; <ptr> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
||||
declare %struct.NSObject* @objc_msgSend(%struct.NSObject*, %struct.objc_selector*, ...)
|
||||
declare ptr @objc_msgSend(ptr, ptr, ...)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
; RUN: llc < %s -mtriple=i686--
|
||||
|
||||
define void @Hubba(i8* %saveunder, i32 %firstBlob, i32 %select) nounwind {
|
||||
define void @Hubba(ptr %saveunder, i32 %firstBlob, i32 %select) nounwind {
|
||||
entry:
|
||||
br i1 false, label %bb53.us, label %bb53
|
||||
bb53.us: ; preds = %bb94.us, %bb53.us, %entry
|
||||
|
@ -19,10 +19,10 @@ bb94.us: ; preds = %bb71.us, %bb53.us
|
|||
%tmp111112.us = trunc i32 %tmp101.us to i16 ; <i16> [#uses=1]
|
||||
%tmp110.us = or i16 %tmp109.us, %tmp111112.us ; <i16> [#uses=1]
|
||||
%tmp113.us = or i16 %tmp110.us, %tmp106.us ; <i16> [#uses=1]
|
||||
store i16 %tmp113.us, i16* null, align 2
|
||||
store i16 %tmp113.us, ptr null, align 2
|
||||
br label %bb53.us
|
||||
bb71.us: ; preds = %bb53.us
|
||||
%tmp80.us = load i8, i8* null, align 1 ; <i8> [#uses=1]
|
||||
%tmp80.us = load i8, ptr null, align 1 ; <i8> [#uses=1]
|
||||
%tmp8081.us = zext i8 %tmp80.us to i32 ; <i32> [#uses=1]
|
||||
%tmp87.us = mul i32 %tmp8081.us, 0 ; <i32> [#uses=1]
|
||||
%tmp92.us = add i32 0, %tmp87.us ; <i32> [#uses=1]
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc < %s -mtriple=i386-apple-darwin -disable-cgp-branch-opts | FileCheck %s
|
||||
|
||||
%struct.DBC_t = type { i32, i8*, i16, %struct.DBC_t*, i8*, i8*, i8*, i8*, i8*, %struct.DBC_t*, i32, i32, i32, i32, i8*, i8*, i8*, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i32*, i8, i16, %struct.DRVOPT*, i16 }
|
||||
%struct.DRVOPT = type { i16, i32, i8, %struct.DRVOPT* }
|
||||
%struct.GENV_t = type { i32, i8*, i16, i8*, i8*, i32, i32, i32, i32, %struct.DBC_t*, i16 }
|
||||
%struct.DBC_t = type { i32, ptr, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, ptr, i8, i16, ptr, i16 }
|
||||
%struct.DRVOPT = type { i16, i32, i8, ptr }
|
||||
%struct.GENV_t = type { i32, ptr, i16, ptr, ptr, i32, i32, i32, i32, ptr, i16 }
|
||||
%struct.pthread_mutex_t = type { i32, [40 x i8] }
|
||||
@iodbcdm_global_lock = external global %struct.pthread_mutex_t ; <%struct.pthread_mutex_t*> [#uses=1]
|
||||
@iodbcdm_global_lock = external global %struct.pthread_mutex_t ; <ptr> [#uses=1]
|
||||
|
||||
define i16 @SQLDriversW(i8* %henv, i16 zeroext %fDir, i32* %szDrvDesc, i16 signext %cbDrvDescMax, i16* %pcbDrvDesc, i32* %szDrvAttr, i16 signext %cbDrvAttrMax, i16* %pcbDrvAttr) nounwind {
|
||||
define i16 @SQLDriversW(ptr %henv, i16 zeroext %fDir, ptr %szDrvDesc, i16 signext %cbDrvDescMax, ptr %pcbDrvDesc, ptr %szDrvAttr, i16 signext %cbDrvAttrMax, ptr %pcbDrvAttr) nounwind {
|
||||
; CHECK-LABEL: SQLDriversW:
|
||||
; CHECK: ## %bb.0: ## %entry
|
||||
; CHECK-NEXT: pushl %ebp
|
||||
|
@ -92,22 +92,21 @@ define i16 @SQLDriversW(i8* %henv, i16 zeroext %fDir, i32* %szDrvDesc, i16 sign
|
|||
; CHECK-NEXT: popl %ebp
|
||||
; CHECK-NEXT: retl
|
||||
entry:
|
||||
%tmp12 = bitcast i8* %henv to %struct.GENV_t* ; <%struct.GENV_t*> [#uses=1]
|
||||
br i1 true, label %bb28, label %bb
|
||||
bb: ; preds = %entry
|
||||
ret i16 0
|
||||
bb28: ; preds = %entry
|
||||
br i1 false, label %bb37, label %done
|
||||
bb37: ; preds = %bb28
|
||||
%tmp46 = getelementptr %struct.GENV_t, %struct.GENV_t* %tmp12, i32 0, i32 10 ; <i16*> [#uses=1]
|
||||
store i16 0, i16* %tmp46, align 4
|
||||
%tmp46 = getelementptr %struct.GENV_t, ptr %henv, i32 0, i32 10 ; <ptr> [#uses=1]
|
||||
store i16 0, ptr %tmp46, align 4
|
||||
br i1 false, label %bb74, label %bb92
|
||||
bb74: ; preds = %bb37
|
||||
br label %bb92
|
||||
bb92: ; preds = %bb74, %bb37
|
||||
%tmp95180 = shl i16 %cbDrvAttrMax, 2 ; <i16> [#uses=1]
|
||||
%tmp100178 = shl i16 %cbDrvDescMax, 2 ; <i16> [#uses=1]
|
||||
%tmp113 = tail call i16 @SQLDrivers_Internal( i8* %henv, i16 zeroext %fDir, i8* null, i16 signext %tmp100178, i16* %pcbDrvDesc, i8* null, i16 signext %tmp95180, i16* %pcbDrvAttr, i8 zeroext 87 ) nounwind ; <i16> [#uses=1]
|
||||
%tmp113 = tail call i16 @SQLDrivers_Internal( ptr %henv, i16 zeroext %fDir, ptr null, i16 signext %tmp100178, ptr %pcbDrvDesc, ptr null, i16 signext %tmp95180, ptr %pcbDrvAttr, i8 zeroext 87 ) nounwind ; <i16> [#uses=1]
|
||||
br i1 false, label %done, label %bb137
|
||||
bb137: ; preds = %bb92
|
||||
ret i16 0
|
||||
|
@ -116,15 +115,15 @@ done: ; preds = %bb92, %bb28
|
|||
br i1 false, label %bb167, label %bb150
|
||||
bb150: ; preds = %done
|
||||
%tmp157158 = sext i16 %retcode.0 to i32 ; <i32> [#uses=1]
|
||||
tail call void @trace_SQLDriversW( i32 1, i32 %tmp157158, i8* %henv, i16 zeroext %fDir, i32* %szDrvDesc, i16 signext %cbDrvDescMax, i16* %pcbDrvDesc, i32* %szDrvAttr, i16 signext %cbDrvAttrMax, i16* %pcbDrvAttr ) nounwind
|
||||
tail call void @trace_SQLDriversW( i32 1, i32 %tmp157158, ptr %henv, i16 zeroext %fDir, ptr %szDrvDesc, i16 signext %cbDrvDescMax, ptr %pcbDrvDesc, ptr %szDrvAttr, i16 signext %cbDrvAttrMax, ptr %pcbDrvAttr ) nounwind
|
||||
ret i16 0
|
||||
bb167: ; preds = %done
|
||||
%tmp168 = tail call i32 @pthread_mutex_unlock( %struct.pthread_mutex_t* @iodbcdm_global_lock ) nounwind ; <i32> [#uses=0]
|
||||
%tmp168 = tail call i32 @pthread_mutex_unlock( ptr @iodbcdm_global_lock ) nounwind ; <i32> [#uses=0]
|
||||
ret i16 %retcode.0
|
||||
}
|
||||
|
||||
declare i32 @pthread_mutex_unlock(%struct.pthread_mutex_t*)
|
||||
declare i32 @pthread_mutex_unlock(ptr)
|
||||
|
||||
declare i16 @SQLDrivers_Internal(i8*, i16 zeroext , i8*, i16 signext , i16*, i8*, i16 signext , i16*, i8 zeroext ) nounwind
|
||||
declare i16 @SQLDrivers_Internal(ptr, i16 zeroext , ptr, i16 signext , ptr, ptr, i16 signext , ptr, i8 zeroext ) nounwind
|
||||
|
||||
declare void @trace_SQLDriversW(i32, i32, i8*, i16 zeroext , i32*, i16 signext , i16*, i32*, i16 signext , i16*)
|
||||
declare void @trace_SQLDriversW(i32, i32, ptr, i16 zeroext , ptr, i16 signext , ptr, ptr, i16 signext , ptr)
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
; RUN: llc < %s -mtriple=i386-apple-darwin | FileCheck %s
|
||||
; Make sure xorl operands are 32-bit registers.
|
||||
|
||||
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8* }
|
||||
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr }
|
||||
%struct.wxDateTime = type { %struct.wxLongLong }
|
||||
%"struct.wxDateTime::TimeZone" = type { i32 }
|
||||
%struct.wxLongLong = type { i64 }
|
||||
%struct.wxString = type { %struct.wxStringBase }
|
||||
%struct.wxStringBase = type { i32* }
|
||||
@.str = external constant [27 x i32] ; <[27 x i32]*> [#uses=1]
|
||||
@.str4 = external constant [14 x i32] ; <[14 x i32]*> [#uses=1]
|
||||
@_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__ = external constant [6 x i8] ; <[6 x i8]*> [#uses=1]
|
||||
@.str33 = external constant [29 x i32] ; <[29 x i32]*> [#uses=1]
|
||||
@.str89 = external constant [5 x i32] ; <[5 x i32]*> [#uses=1]
|
||||
%struct.wxStringBase = type { ptr }
|
||||
@.str = external constant [27 x i32] ; <ptr> [#uses=1]
|
||||
@.str4 = external constant [14 x i32] ; <ptr> [#uses=1]
|
||||
@_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__ = external constant [6 x i8] ; <ptr> [#uses=1]
|
||||
@.str33 = external constant [29 x i32] ; <ptr> [#uses=1]
|
||||
@.str89 = external constant [5 x i32] ; <ptr> [#uses=1]
|
||||
|
||||
define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(%struct.wxString* noalias sret(%struct.wxString) %agg.result, %struct.wxDateTime* %this, i32* %format, %"struct.wxDateTime::TimeZone"* %tz, i1 %foo) personality i32 (...)* @__gxx_personality_v0 {
|
||||
define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(ptr noalias sret(%struct.wxString) %agg.result, ptr %this, ptr %format, ptr %tz, i1 %foo) personality ptr @__gxx_personality_v0 {
|
||||
; CHECK-LABEL: _ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE:
|
||||
; CHECK: ## %bb.0: ## %entry
|
||||
; CHECK-NEXT: pushl %ebp
|
||||
|
@ -190,16 +190,16 @@ bb161.i: ; preds = %bb142.i
|
|||
bb182.i: ; preds = %bb142.i
|
||||
ret void
|
||||
bb3261: ; preds = %bb7834, %bb161.i
|
||||
%tmp3263 = load i32, i32* null, align 4 ; <i32> [#uses=1]
|
||||
%tmp3263 = load i32, ptr null, align 4 ; <i32> [#uses=1]
|
||||
%tmp3264 = icmp eq i32 %tmp3263, 37 ; <i1> [#uses=1]
|
||||
br i1 %tmp3264, label %bb3306, label %bb3267
|
||||
bb3267: ; preds = %bb3261
|
||||
ret void
|
||||
bb3306: ; preds = %bb3261
|
||||
%tmp3310 = invoke %struct.wxStringBase* @_ZN12wxStringBaseaSEPKw( %struct.wxStringBase* null, i32* getelementptr ([5 x i32], [5 x i32]* @.str89, i32 0, i32 0) )
|
||||
to label %bb3314 unwind label %lpad ; <%struct.wxStringBase*> [#uses=0]
|
||||
%tmp3310 = invoke ptr @_ZN12wxStringBaseaSEPKw( ptr null, ptr @.str89 )
|
||||
to label %bb3314 unwind label %lpad ; <ptr> [#uses=0]
|
||||
bb3314: ; preds = %bb3306
|
||||
%tmp3316 = load i32, i32* null, align 4 ; <i32> [#uses=1]
|
||||
%tmp3316 = load i32, ptr null, align 4 ; <i32> [#uses=1]
|
||||
switch i32 %tmp3316, label %bb7595 [
|
||||
i32 0, label %bb7819
|
||||
i32 37, label %bb7806
|
||||
|
@ -232,7 +232,7 @@ bb5334: ; preds = %bb3314
|
|||
bb5484: ; preds = %bb3314
|
||||
ret void
|
||||
bb5657: ; preds = %bb3314
|
||||
%tmp5661 = invoke zeroext i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE( %struct.wxDateTime* %this, %"struct.wxDateTime::TimeZone"* %tz )
|
||||
%tmp5661 = invoke zeroext i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE( ptr %this, ptr %tz )
|
||||
to label %invcont5660 unwind label %lpad ; <i16> [#uses=0]
|
||||
invcont5660: ; preds = %bb5657
|
||||
ret void
|
||||
|
@ -246,10 +246,10 @@ bb115.critedge.i.i8492: ; preds = %bb5809
|
|||
bb91.i8504: ; preds = %bb5809
|
||||
br i1 %foo, label %bb155.i8541, label %bb182.i8560
|
||||
bb155.i8541: ; preds = %bb91.i8504
|
||||
%tmp156.i85398700 = invoke %struct.tm* @gmtime_r( i32* null, %struct.tm* null )
|
||||
to label %bb182.i8560 unwind label %lpad ; <%struct.tm*> [#uses=1]
|
||||
%tmp156.i85398700 = invoke ptr @gmtime_r( ptr null, ptr null )
|
||||
to label %bb182.i8560 unwind label %lpad ; <ptr> [#uses=1]
|
||||
bb182.i8560: ; preds = %bb155.i8541, %bb91.i8504
|
||||
%tm48.0.i8558 = phi %struct.tm* [ null, %bb91.i8504 ], [ %tmp156.i85398700, %bb155.i8541 ] ; <%struct.tm*> [#uses=0]
|
||||
%tm48.0.i8558 = phi ptr [ null, %bb91.i8504 ], [ %tmp156.i85398700, %bb155.i8541 ] ; <ptr> [#uses=0]
|
||||
br i1 %foo, label %bb278.i8617, label %bb187.i8591
|
||||
bb187.i8591: ; preds = %bb182.i8560
|
||||
%tmp245.i8588 = srem i64 0, 86400000 ; <i64> [#uses=1]
|
||||
|
@ -265,7 +265,7 @@ bb278.i8617: ; preds = %bb182.i8560
|
|||
%timeOnly50.0.i8622 = add i32 0, 0 ; <i32> [#uses=1]
|
||||
br i1 %foo, label %bb440.i8663, label %bb448.i8694
|
||||
bb440.i8663: ; preds = %bb278.i8617
|
||||
invoke void @_Z10wxOnAssertPKwiPKcS0_S0_( i32* getelementptr ([27 x i32], [27 x i32]* @.str, i32 0, i32 0), i32 1717, i8* getelementptr ([6 x i8], [6 x i8]* @_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__, i32 0, i32 0), i32* getelementptr ([29 x i32], [29 x i32]* @.str33, i32 0, i32 0), i32* getelementptr ([14 x i32], [14 x i32]* @.str4, i32 0, i32 0) )
|
||||
invoke void @_Z10wxOnAssertPKwiPKcS0_S0_( ptr @.str, i32 1717, ptr @_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__, ptr @.str33, ptr @.str4 )
|
||||
to label %bb448.i8694 unwind label %lpad
|
||||
bb448.i8694: ; preds = %bb440.i8663, %bb278.i8617
|
||||
%tmp477.i8669 = srem i32 %timeOnly50.0.i8622, 1000 ; <i32> [#uses=1]
|
||||
|
@ -274,13 +274,13 @@ bb448.i8694: ; preds = %bb440.i8663, %bb278.i8617
|
|||
invcont5814: ; preds = %bb448.i8694, %bb265.i8606
|
||||
%tmp812.0.0 = phi i16 [ %tmp477478.i8670, %bb448.i8694 ], [ %tmp273274.i8595, %bb265.i8606 ] ; <i16> [#uses=1]
|
||||
%tmp58165817 = zext i16 %tmp812.0.0 to i32 ; <i32> [#uses=1]
|
||||
invoke void (%struct.wxString*, i32*, ...) @_ZN8wxString6FormatEPKwz(%struct.wxString* noalias sret(%struct.wxString) null, i32* null, i32 %tmp58165817 )
|
||||
invoke void (ptr, ptr, ...) @_ZN8wxString6FormatEPKwz(ptr noalias sret(%struct.wxString) null, ptr null, i32 %tmp58165817 )
|
||||
to label %invcont5831 unwind label %lpad
|
||||
invcont5831: ; preds = %invcont5814
|
||||
%tmp5862 = invoke zeroext i8 @_ZN12wxStringBase10ConcatSelfEmPKwm(%struct.wxStringBase* null, i32 0, i32* null, i32 0 )
|
||||
%tmp5862 = invoke zeroext i8 @_ZN12wxStringBase10ConcatSelfEmPKwm(ptr null, i32 0, ptr null, i32 0 )
|
||||
to label %bb7834 unwind label %lpad8185 ; <i8> [#uses=0]
|
||||
bb5968: ; preds = %bb3314
|
||||
invoke void (%struct.wxString*, i32*, ...) @_ZN8wxString6FormatEPKwz(%struct.wxString* noalias sret(%struct.wxString) null, i32* null, i32 0 )
|
||||
invoke void (ptr, ptr, ...) @_ZN8wxString6FormatEPKwz(ptr noalias sret(%struct.wxString) null, ptr null, i32 0 )
|
||||
to label %invcont5981 unwind label %lpad
|
||||
invcont5981: ; preds = %bb5968
|
||||
ret void
|
||||
|
@ -301,34 +301,34 @@ bb7308: ; preds = %bb3314
|
|||
bb7595: ; preds = %bb3314
|
||||
ret void
|
||||
bb7806: ; preds = %bb3314
|
||||
%tmp7814 = invoke %struct.wxStringBase* @_ZN12wxStringBase6appendEmw( %struct.wxStringBase* null, i32 1, i32 0 )
|
||||
to label %bb7834 unwind label %lpad ; <%struct.wxStringBase*> [#uses=0]
|
||||
%tmp7814 = invoke ptr @_ZN12wxStringBase6appendEmw( ptr null, i32 1, i32 0 )
|
||||
to label %bb7834 unwind label %lpad ; <ptr> [#uses=0]
|
||||
bb7819: ; preds = %bb3314
|
||||
ret void
|
||||
bb7834: ; preds = %bb7806, %invcont5831
|
||||
br label %bb3261
|
||||
lpad: ; preds = %bb7806, %bb5968, %invcont5814, %bb440.i8663, %bb155.i8541, %bb5657, %bb3306
|
||||
%exn = landingpad {i8*, i32}
|
||||
%exn = landingpad {ptr, i32}
|
||||
cleanup
|
||||
ret void
|
||||
lpad8185: ; preds = %invcont5831
|
||||
%exn8185 = landingpad {i8*, i32}
|
||||
%exn8185 = landingpad {ptr, i32}
|
||||
cleanup
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @_Z10wxOnAssertPKwiPKcS0_S0_(i32*, i32, i8*, i32*, i32*)
|
||||
declare void @_Z10wxOnAssertPKwiPKcS0_S0_(ptr, i32, ptr, ptr, ptr)
|
||||
|
||||
declare zeroext i8 @_ZN12wxStringBase10ConcatSelfEmPKwm(%struct.wxStringBase*, i32, i32*, i32)
|
||||
declare zeroext i8 @_ZN12wxStringBase10ConcatSelfEmPKwm(ptr, i32, ptr, i32)
|
||||
|
||||
declare %struct.tm* @gmtime_r(i32*, %struct.tm*)
|
||||
declare ptr @gmtime_r(ptr, ptr)
|
||||
|
||||
declare zeroext i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE(%struct.wxDateTime*, %"struct.wxDateTime::TimeZone"*)
|
||||
declare zeroext i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE(ptr, ptr)
|
||||
|
||||
declare %struct.wxStringBase* @_ZN12wxStringBase6appendEmw(%struct.wxStringBase*, i32, i32)
|
||||
declare ptr @_ZN12wxStringBase6appendEmw(ptr, i32, i32)
|
||||
|
||||
declare %struct.wxStringBase* @_ZN12wxStringBaseaSEPKw(%struct.wxStringBase*, i32*)
|
||||
declare ptr @_ZN12wxStringBaseaSEPKw(ptr, ptr)
|
||||
|
||||
declare void @_ZN8wxString6FormatEPKwz(%struct.wxString* noalias sret(%struct.wxString) , i32*, ...)
|
||||
declare void @_ZN8wxString6FormatEPKwz(ptr noalias sret(%struct.wxString) , ptr, ...)
|
||||
|
||||
declare i32 @__gxx_personality_v0(...)
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
; Don't accidentally add the offset twice for trailing bytes.
|
||||
|
||||
%struct.S63 = type { [63 x i8] }
|
||||
@g1s63 = external dso_local global %struct.S63 ; <%struct.S63*> [#uses=1]
|
||||
@g1s63 = external dso_local global %struct.S63 ; <ptr> [#uses=1]
|
||||
|
||||
declare void @test63(%struct.S63* byval(%struct.S63) align 4 ) nounwind
|
||||
declare void @test63(ptr byval(%struct.S63) align 4 ) nounwind
|
||||
|
||||
define void @testit63_entry_2E_ce() nounwind {
|
||||
; CHECK-LABEL: testit63_entry_2E_ce:
|
||||
|
@ -26,6 +26,6 @@ define void @testit63_entry_2E_ce() nounwind {
|
|||
; CHECK-NEXT: popl %esi
|
||||
; CHECK-NEXT: popl %edi
|
||||
; CHECK-NEXT: retl
|
||||
tail call void @test63(%struct.S63* byval(%struct.S63) align 4 @g1s63) nounwind
|
||||
tail call void @test63(ptr byval(%struct.S63) align 4 @g1s63) nounwind
|
||||
ret void
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue