From f28e0cef0dadea1c4149df3ade98915b4ded37f9 Mon Sep 17 00:00:00 2001 From: Tanya Lattner Date: Tue, 19 Feb 2008 01:41:04 +0000 Subject: Remove llvm-upgrade and update tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47296 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../Generic/2002-04-14-UnexpectedUnsignedType.ll | 16 +- .../Generic/2002-04-16-StackFrameSizeAlignment.ll | 22 +- test/CodeGen/Generic/2003-05-27-phifcmpd.ll | 25 +- .../CodeGen/Generic/2003-05-27-useboolinotherbb.ll | 16 +- test/CodeGen/Generic/2003-05-27-usefsubasbool.ll | 17 +- test/CodeGen/Generic/2003-05-28-ManyArgs.ll | 271 +++--- test/CodeGen/Generic/2003-05-30-BadFoldGEP.ll | 49 +- test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll | 37 +- test/CodeGen/Generic/2003-07-06-BadIntCmp.ll | 57 +- test/CodeGen/Generic/2003-07-07-BadLongConst.ll | 30 +- test/CodeGen/Generic/2003-07-08-BadCastToBool.ll | 32 +- test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll | 41 +- test/CodeGen/Generic/2004-02-08-UnwindSupport.llx | 22 +- .../Generic/2004-05-09-LiveVarPartialRegister.llx | 24 +- test/CodeGen/Generic/2005-01-18-SetUO-InfLoop.ll | 27 +- test/CodeGen/Generic/2005-04-09-GlobalInPHI.ll | 29 +- .../Generic/2005-07-12-memcpy-i64-length.ll | 12 +- .../Generic/2005-10-18-ZeroSizeStackObject.ll | 8 +- test/CodeGen/Generic/2005-10-21-longlonggtu.ll | 26 +- test/CodeGen/Generic/2005-12-01-Crash.ll | 31 +- test/CodeGen/Generic/2005-12-12-ExpandSextInreg.ll | 10 +- test/CodeGen/Generic/2006-01-12-BadSetCCFold.ll | 24 +- .../2006-01-18-InvalidBranchOpcodeAssert.ll | 19 +- test/CodeGen/Generic/2006-02-12-InsertLibcall.ll | 40 +- .../Generic/2006-03-01-dagcombineinfloop.ll | 139 ++- .../Generic/2006-03-27-DebugInfoNULLDeclare.ll | 13 +- test/CodeGen/Generic/2006-04-11-vecload.ll | 6 +- test/CodeGen/Generic/2006-04-26-SetCCAnd.ll | 31 +- .../CodeGen/Generic/2006-04-28-Sign-extend-bool.ll | 15 +- .../Generic/2006-05-06-GEP-Cast-Sink-Crash.ll | 46 +- .../CodeGen/Generic/2006-06-12-LowerSwitchCrash.ll | 10 +- .../Generic/2006-06-13-ComputeMaskedBitsCrash.ll | 50 +- .../Generic/2006-06-28-SimplifySetCCCrash.ll | 316 +++--- test/CodeGen/Generic/2006-07-03-schedulers.ll | 57 +- test/CodeGen/Generic/2006-08-30-CoallescerCrash.ll | 133 ++- test/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll | 106 +- test/CodeGen/Generic/2006-09-06-SwitchLowering.ll | 66 +- test/CodeGen/Generic/2006-10-27-CondFolding.ll | 12 +- test/CodeGen/Generic/2006-10-29-Crash.ll | 29 +- .../Generic/2006-11-06-MemIntrinsicExpand.ll | 14 +- test/CodeGen/Generic/2006-11-20-DAGCombineCrash.ll | 57 +- test/CodeGen/Generic/2006-12-16-InlineAsmCrash.ll | 44 +- test/CodeGen/Generic/BasicInstrs.llx | 64 +- test/CodeGen/Generic/BurgBadRegAlloc.ll | 1020 ++++++++++---------- test/CodeGen/Generic/ConstantExprLowering.llx | 34 +- test/CodeGen/Generic/SwitchLowering.ll | 41 +- test/CodeGen/Generic/badCallArgLRLLVM.ll | 29 +- test/CodeGen/Generic/badFoldGEP.ll | 28 +- test/CodeGen/Generic/badarg6.ll | 50 +- test/CodeGen/Generic/badlive.ll | 48 +- test/CodeGen/Generic/bool-to-double.ll | 7 +- test/CodeGen/Generic/call-ret0.ll | 14 +- test/CodeGen/Generic/call-ret42.ll | 12 +- test/CodeGen/Generic/call-void.ll | 13 +- test/CodeGen/Generic/call2-ret0.ll | 19 +- test/CodeGen/Generic/cast-fp.ll | 80 +- test/CodeGen/Generic/constindices.ll | 92 +- test/CodeGen/Generic/debug-info.ll | 24 +- test/CodeGen/Generic/div-neg-power-2.ll | 9 +- test/CodeGen/Generic/fneg-fabs.ll | 30 +- test/CodeGen/Generic/fwdtwice.ll | 25 +- test/CodeGen/Generic/global-ret0.ll | 10 +- test/CodeGen/Generic/hello.ll | 14 +- test/CodeGen/Generic/intrinsics.ll | 53 +- test/CodeGen/Generic/isunord.ll | 12 +- test/CodeGen/Generic/llvm-ct-intrinsics.ll | 103 +- test/CodeGen/Generic/negintconst.ll | 34 +- test/CodeGen/Generic/nested-select.ll | 23 +- test/CodeGen/Generic/print-add.ll | 26 +- test/CodeGen/Generic/print-arith-fp.ll | 135 ++- test/CodeGen/Generic/print-arith-int.ll | 180 ++-- test/CodeGen/Generic/print-int.ll | 16 +- test/CodeGen/Generic/print-mul-exp.ll | 104 +- test/CodeGen/Generic/print-mul.ll | 53 +- test/CodeGen/Generic/print-shift.ll | 55 +- test/CodeGen/Generic/ret0.ll | 6 +- test/CodeGen/Generic/ret42.ll | 6 +- test/CodeGen/Generic/sched.ll | 52 +- test/CodeGen/Generic/select.ll | 254 +++-- test/CodeGen/Generic/shift-int64.ll | 15 +- test/CodeGen/Generic/spillccr.ll | 73 +- test/CodeGen/Generic/stacksave-restore.ll | 20 +- test/CodeGen/Generic/switch-crit-edge-constant.ll | 73 +- test/CodeGen/Generic/vector-constantexpr.ll | 9 +- test/CodeGen/Generic/vector-identity-shuffle.ll | 28 +- test/CodeGen/Generic/vector.ll | 218 +++-- 86 files changed, 2541 insertions(+), 2699 deletions(-) (limited to 'test/CodeGen/Generic') diff --git a/test/CodeGen/Generic/2002-04-14-UnexpectedUnsignedType.ll b/test/CodeGen/Generic/2002-04-14-UnexpectedUnsignedType.ll index 3e2dbfe..879c4c8 100644 --- a/test/CodeGen/Generic/2002-04-14-UnexpectedUnsignedType.ll +++ b/test/CodeGen/Generic/2002-04-14-UnexpectedUnsignedType.ll @@ -1,15 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as -o - | llc +; RUN: llvm-as < %s -o - | llc ; This caused the backend to assert out with: ; SparcInstrInfo.cpp:103: failed assertion `0 && "Unexpected unsigned type"' ; -implementation -declare void "bar"(sbyte* %G) +declare void @bar(i8*) -void "foo"() -begin - %cast225 = cast ulong 123456 to sbyte* ; [#uses=1] - call void %bar( sbyte* %cast225) - ret void -end +define void @foo() { + %cast225 = inttoptr i64 123456 to i8* ; [#uses=1] + call void @bar( i8* %cast225 ) + ret void +} diff --git a/test/CodeGen/Generic/2002-04-16-StackFrameSizeAlignment.ll b/test/CodeGen/Generic/2002-04-16-StackFrameSizeAlignment.ll index d7e138a..d77b9e1 100644 --- a/test/CodeGen/Generic/2002-04-16-StackFrameSizeAlignment.ll +++ b/test/CodeGen/Generic/2002-04-16-StackFrameSizeAlignment.ll @@ -1,18 +1,14 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ; Compiling this file produces: ; Sparc.cpp:91: failed assertion `(offset - OFFSET) % getStackFrameSizeAlignment() == 0' ; -implementation - -declare int "SIM"(sbyte* %A, sbyte* %B, int %M, int %N, int %K, [256 x int]* %V, int %Q, int %R, int %nseq) - -void "foo"() -begin -bb0: ;[#uses=0] - %V = alloca [256 x int], uint 256 ; <[256 x int]*> [#uses=1] - call int %SIM( sbyte* null, sbyte* null, int 0, int 0, int 0, [256 x int]* %V, int 0, int 0, int 2 ) ; :0 [#uses=0] - ret void -end - +declare i32 @SIM(i8*, i8*, i32, i32, i32, [256 x i32]*, i32, i32, i32) + +define void @foo() { +bb0: + %V = alloca [256 x i32], i32 256 ; <[256 x i32]*> [#uses=1] + call i32 @SIM( i8* null, i8* null, i32 0, i32 0, i32 0, [256 x i32]* %V, i32 0, i32 0, i32 2 ) ; :0 [#uses=0] + ret void +} diff --git a/test/CodeGen/Generic/2003-05-27-phifcmpd.ll b/test/CodeGen/Generic/2003-05-27-phifcmpd.ll index 5c795fa..cf17ef4 100644 --- a/test/CodeGen/Generic/2003-05-27-phifcmpd.ll +++ b/test/CodeGen/Generic/2003-05-27-phifcmpd.ll @@ -1,18 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -void %QRiterate(int %p.1, double %tmp.212) { -entry: ; No predecessors! - %tmp.184 = setgt int %p.1, 0 ; [#uses=1] - br bool %tmp.184, label %shortcirc_next.1, label %shortcirc_done.1 +define void @QRiterate(i32 %p.1, double %tmp.212) { +entry: + %tmp.184 = icmp sgt i32 %p.1, 0 ; [#uses=1] + br i1 %tmp.184, label %shortcirc_next.1, label %shortcirc_done.1 -shortcirc_next.1: ; preds = %entry - %tmp.213 = setne double %tmp.212, 0.000000e+00 +shortcirc_next.1: ; preds = %shortcirc_done.1, %entry + %tmp.213 = fcmp une double %tmp.212, 0.000000e+00 ; [#uses=1] br label %shortcirc_done.1 -shortcirc_done.1: ; preds = %entry, %shortcirc_next.1 - %val.1 = phi bool [ false, %entry ], [ %tmp.213, %shortcirc_next.1 ] - br bool %val.1, label %shortcirc_next.1, label %exit.1 +shortcirc_done.1: ; preds = %shortcirc_next.1, %entry + %val.1 = phi i1 [ false, %entry ], [ %tmp.213, %shortcirc_next.1 ] ; [#uses=1] + br i1 %val.1, label %shortcirc_next.1, label %exit.1 -exit.1: - ret void +exit.1: ; preds = %shortcirc_done.1 + ret void } + diff --git a/test/CodeGen/Generic/2003-05-27-useboolinotherbb.ll b/test/CodeGen/Generic/2003-05-27-useboolinotherbb.ll index 8df84f0..03b2a16 100644 --- a/test/CodeGen/Generic/2003-05-27-useboolinotherbb.ll +++ b/test/CodeGen/Generic/2003-05-27-useboolinotherbb.ll @@ -1,13 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc - -void %QRiterate(double %tmp.212) { - %tmp.213 = setne double %tmp.212, 0.000000e+00 +define void @QRiterate(double %tmp.212) { + %tmp.213 = fcmp une double %tmp.212, 0.000000e+00 ; [#uses=1] br label %shortcirc_next.1 -shortcirc_next.1: ; preds = %entry - br bool %tmp.213, label %shortcirc_next.1, label %exit.1 +shortcirc_next.1: ; preds = %shortcirc_next.1, %0 + br i1 %tmp.213, label %shortcirc_next.1, label %exit.1 -exit.1: - ret void +exit.1: ; preds = %shortcirc_next.1 + ret void } + diff --git a/test/CodeGen/Generic/2003-05-27-usefsubasbool.ll b/test/CodeGen/Generic/2003-05-27-usefsubasbool.ll index 40f4d4d..b456eeb 100644 --- a/test/CodeGen/Generic/2003-05-27-usefsubasbool.ll +++ b/test/CodeGen/Generic/2003-05-27-usefsubasbool.ll @@ -1,13 +1,14 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -void %QRiterate(double %tmp.212) { -entry: ; No predecessors! +define void @QRiterate(double %tmp.212) { +entry: br label %shortcirc_next.1 -shortcirc_next.1: ; preds = %entry - %tmp.213 = setne double %tmp.212, 0.000000e+00 - br bool %tmp.213, label %shortcirc_next.1, label %exit.1 +shortcirc_next.1: ; preds = %shortcirc_next.1, %entry + %tmp.213 = fcmp une double %tmp.212, 0.000000e+00 ; [#uses=1] + br i1 %tmp.213, label %shortcirc_next.1, label %exit.1 -exit.1: - ret void +exit.1: ; preds = %shortcirc_next.1 + ret void } + diff --git a/test/CodeGen/Generic/2003-05-28-ManyArgs.ll b/test/CodeGen/Generic/2003-05-28-ManyArgs.ll index 8600638..595700a 100644 --- a/test/CodeGen/Generic/2003-05-28-ManyArgs.ll +++ b/test/CodeGen/Generic/2003-05-28-ManyArgs.ll @@ -1,156 +1,153 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; Date: May 28, 2003. ;; From: test/Programs/External/SPEC/CINT2000/175.vpr.llvm.bc ;; Function: int %main(int %argc.1, sbyte** %argv.1) ;; ;; Error: A function call with about 56 arguments causes an assertion failure -;; in llc because the register allocator cannot find a register -;; not used explicitly by the call instruction. -;; +;; in llc because the register allocator cannot find a register +;; not used explicitly by the call instruction. +;; ;; Cause: Regalloc was not keeping track of free registers correctly. -;; It was counting the registers allocated to all outgoing arguments, -;; even though most of those are copied to the stack (so those -;; registers are not actually used by the call instruction). +;; It was counting the registers allocated to all outgoing arguments, +;; even though most of those are copied to the stack (so those +;; registers are not actually used by the call instruction). ;; ;; Fixed: By rewriting selection and allocation so that selection explicitly -;; inserts all copy operations required for passing arguments and +;; inserts all copy operations required for passing arguments and ;; for the return value of a call, copying to/from registers ;; and/or to stack locations as needed. ;; + %struct..s_annealing_sched = type { i32, float, float, float, float } + %struct..s_chan = type { i32, float, float, float, float } + %struct..s_det_routing_arch = type { i32, float, float, float, i32, i32, i16, i16, i16, float, float } + %struct..s_placer_opts = type { i32, float, i32, i32, i8*, i32, i32 } + %struct..s_router_opts = type { float, float, float, float, float, i32, i32, i32, i32 } + %struct..s_segment_inf = type { float, i32, i16, i16, float, float, i32, float, float } + %struct..s_switch_inf = type { i32, float, float, float, float } - %struct..s_annealing_sched = type { uint, float, float, float, float } - %struct..s_chan = type { uint, float, float, float, float } - %struct..s_det_routing_arch = type { uint, float, float, float, uint, int, short, short, short, float, float } - %struct..s_placer_opts = type { int, float, int, uint, sbyte*, uint, int } - %struct..s_router_opts = type { float, float, float, float, float, int, int, uint, int } - %struct..s_segment_inf = type { float, int, short, short, float, float, uint, float, float } - %struct..s_switch_inf = type { uint, float, float, float, float } - -implementation - -int %main(int %argc.1, sbyte** %argv.1) { -entry: - %net_file = alloca [300 x sbyte] - %place_file = alloca [300 x sbyte] - %arch_file = alloca [300 x sbyte] - %route_file = alloca [300 x sbyte] - %full_stats = alloca uint - %operation = alloca int - %verify_binary_search = alloca uint - %show_graphics = alloca uint - %annealing_sched = alloca %struct..s_annealing_sched - %placer_opts = alloca %struct..s_placer_opts - %router_opts = alloca %struct..s_router_opts - %det_routing_arch = alloca %struct..s_det_routing_arch - %segment_inf = alloca %struct..s_segment_inf* - %timing_inf = alloca { uint, float, float, float, float, float, float, float, float, float, float } - %tmp.101 = getelementptr %struct..s_placer_opts* %placer_opts, long 0, uint 4 - %tmp.105 = getelementptr [300 x sbyte]* %net_file, long 0, long 0 - %tmp.106 = getelementptr [300 x sbyte]* %arch_file, long 0, long 0 - %tmp.107 = getelementptr [300 x sbyte]* %place_file, long 0, long 0 - %tmp.108 = getelementptr [300 x sbyte]* %route_file, long 0, long 0 - %tmp.109 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 0 - %tmp.112 = getelementptr %struct..s_placer_opts* %placer_opts, long 0, uint 0 - %tmp.114 = getelementptr %struct..s_placer_opts* %placer_opts, long 0, uint 6 - %tmp.118 = getelementptr %struct..s_router_opts* %router_opts, long 0, uint 7 - %tmp.135 = load int* %operation - %tmp.137 = load int* %tmp.112 - %tmp.138 = getelementptr %struct..s_placer_opts* %placer_opts, long 0, uint 1 - %tmp.139 = load float* %tmp.138 - %tmp.140 = getelementptr %struct..s_placer_opts* %placer_opts, long 0, uint 2 - %tmp.141 = load int* %tmp.140 - %tmp.142 = getelementptr %struct..s_placer_opts* %placer_opts, long 0, uint 3 - %tmp.143 = load uint* %tmp.142 - %tmp.145 = load sbyte** %tmp.101 - %tmp.146 = getelementptr %struct..s_placer_opts* %placer_opts, long 0, uint 5 - %tmp.147 = load uint* %tmp.146 - %tmp.149 = load int* %tmp.114 - %tmp.154 = load uint* %full_stats - %tmp.155 = load uint* %verify_binary_search - %tmp.156 = getelementptr %struct..s_annealing_sched* %annealing_sched, long 0, uint 0 - %tmp.157 = load uint* %tmp.156 - %tmp.158 = getelementptr %struct..s_annealing_sched* %annealing_sched, long 0, uint 1 - %tmp.159 = load float* %tmp.158 - %tmp.160 = getelementptr %struct..s_annealing_sched* %annealing_sched, long 0, uint 2 - %tmp.161 = load float* %tmp.160 - %tmp.162 = getelementptr %struct..s_annealing_sched* %annealing_sched, long 0, uint 3 - %tmp.163 = load float* %tmp.162 - %tmp.164 = getelementptr %struct..s_annealing_sched* %annealing_sched, long 0, uint 4 - %tmp.165 = load float* %tmp.164 - %tmp.166 = getelementptr %struct..s_router_opts* %router_opts, long 0, uint 0 - %tmp.167 = load float* %tmp.166 - %tmp.168 = getelementptr %struct..s_router_opts* %router_opts, long 0, uint 1 - %tmp.169 = load float* %tmp.168 - %tmp.170 = getelementptr %struct..s_router_opts* %router_opts, long 0, uint 2 - %tmp.171 = load float* %tmp.170 - %tmp.172 = getelementptr %struct..s_router_opts* %router_opts, long 0, uint 3 - %tmp.173 = load float* %tmp.172 - %tmp.174 = getelementptr %struct..s_router_opts* %router_opts, long 0, uint 4 - %tmp.175 = load float* %tmp.174 - %tmp.176 = getelementptr %struct..s_router_opts* %router_opts, long 0, uint 5 - %tmp.177 = load int* %tmp.176 - %tmp.178 = getelementptr %struct..s_router_opts* %router_opts, long 0, uint 6 - %tmp.179 = load int* %tmp.178 - %tmp.181 = load uint* %tmp.118 - %tmp.182 = getelementptr %struct..s_router_opts* %router_opts, long 0, uint 8 - %tmp.183 = load int* %tmp.182 - %tmp.184 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 0 - %tmp.185 = load uint* %tmp.184 - %tmp.186 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 1 - %tmp.187 = load float* %tmp.186 - %tmp.188 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 2 - %tmp.189 = load float* %tmp.188 - %tmp.190 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 3 - %tmp.191 = load float* %tmp.190 - %tmp.192 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 4 - %tmp.193 = load uint* %tmp.192 - %tmp.194 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 5 - %tmp.195 = load int* %tmp.194 - %tmp.196 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 6 - %tmp.197 = load short* %tmp.196 - %tmp.198 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 7 - %tmp.199 = load short* %tmp.198 - %tmp.200 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 8 - %tmp.201 = load short* %tmp.200 - %tmp.202 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 9 - %tmp.203 = load float* %tmp.202 - %tmp.204 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, long 0, uint 10 - %tmp.205 = load float* %tmp.204 - %tmp.206 = load %struct..s_segment_inf** %segment_inf - %tmp.208 = load uint* %tmp.109 - %tmp.209 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 1 - %tmp.210 = load float* %tmp.209 - %tmp.211 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 2 - %tmp.212 = load float* %tmp.211 - %tmp.213 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 3 - %tmp.214 = load float* %tmp.213 - %tmp.215 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 4 - %tmp.216 = load float* %tmp.215 - %tmp.217 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 5 - %tmp.218 = load float* %tmp.217 - %tmp.219 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 6 - %tmp.220 = load float* %tmp.219 - %tmp.221 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 7 - %tmp.222 = load float* %tmp.221 - %tmp.223 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 8 - %tmp.224 = load float* %tmp.223 - %tmp.225 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 9 - %tmp.226 = load float* %tmp.225 - %tmp.227 = getelementptr { uint, float, float, float, float, float, float, float, float, float, float }* %timing_inf, long 0, uint 10 - %tmp.228 = load float* %tmp.227 - call void %place_and_route( int %tmp.135, int %tmp.137, float %tmp.139, int %tmp.141, uint %tmp.143, sbyte* %tmp.145, uint %tmp.147, int %tmp.149, sbyte* %tmp.107, sbyte* %tmp.105, sbyte* %tmp.106, sbyte* %tmp.108, uint %tmp.154, uint %tmp.155, uint %tmp.157, float %tmp.159, float %tmp.161, float %tmp.163, float %tmp.165, float %tmp.167, float %tmp.169, float %tmp.171, float %tmp.173, float %tmp.175, int %tmp.177, int %tmp.179, uint %tmp.181, int %tmp.183, uint %tmp.185, float %tmp.187, float %tmp.189, float %tmp.191, uint %tmp.193, int %tmp.195, short %tmp.197, short %tmp.199, short %tmp.201, float %tmp.203, float %tmp.205, %struct..s_segment_inf* %tmp.206, uint %tmp.208, float %tmp.210, float %tmp.212, float %tmp.214, float %tmp.216, float %tmp.218, float %tmp.220, float %tmp.222, float %tmp.224, float %tmp.226, float %tmp.228 ) - %tmp.231 = load uint* %show_graphics - %tmp.232 = setne uint %tmp.231, 0 - br bool %tmp.232, label %then.2, label %endif.2 +define i32 @main(i32 %argc.1, i8** %argv.1) { +entry: + %net_file = alloca [300 x i8] ; <[300 x i8]*> [#uses=1] + %place_file = alloca [300 x i8] ; <[300 x i8]*> [#uses=1] + %arch_file = alloca [300 x i8] ; <[300 x i8]*> [#uses=1] + %route_file = alloca [300 x i8] ; <[300 x i8]*> [#uses=1] + %full_stats = alloca i32 ; [#uses=1] + %operation = alloca i32 ; [#uses=1] + %verify_binary_search = alloca i32 ; [#uses=1] + %show_graphics = alloca i32 ; [#uses=1] + %annealing_sched = alloca %struct..s_annealing_sched ; <%struct..s_annealing_sched*> [#uses=5] + %placer_opts = alloca %struct..s_placer_opts ; <%struct..s_placer_opts*> [#uses=7] + %router_opts = alloca %struct..s_router_opts ; <%struct..s_router_opts*> [#uses=9] + %det_routing_arch = alloca %struct..s_det_routing_arch ; <%struct..s_det_routing_arch*> [#uses=11] + %segment_inf = alloca %struct..s_segment_inf* ; <%struct..s_segment_inf**> [#uses=1] + %timing_inf = alloca { i32, float, float, float, float, float, float, float, float, float, float } ; <{ i32, float, float, float, float, float, float, float, float, float, float }*> [#uses=11] + %tmp.101 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 4 ; [#uses=1] + %tmp.105 = getelementptr [300 x i8]* %net_file, i64 0, i64 0 ; [#uses=1] + %tmp.106 = getelementptr [300 x i8]* %arch_file, i64 0, i64 0 ; [#uses=1] + %tmp.107 = getelementptr [300 x i8]* %place_file, i64 0, i64 0 ; [#uses=1] + %tmp.108 = getelementptr [300 x i8]* %route_file, i64 0, i64 0 ; [#uses=1] + %tmp.109 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 0 ; [#uses=1] + %tmp.112 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 0 ; [#uses=1] + %tmp.114 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 6 ; [#uses=1] + %tmp.118 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 7 ; [#uses=1] + %tmp.135 = load i32* %operation ; [#uses=1] + %tmp.137 = load i32* %tmp.112 ; [#uses=1] + %tmp.138 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 1 ; [#uses=1] + %tmp.139 = load float* %tmp.138 ; [#uses=1] + %tmp.140 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 2 ; [#uses=1] + %tmp.141 = load i32* %tmp.140 ; [#uses=1] + %tmp.142 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 3 ; [#uses=1] + %tmp.143 = load i32* %tmp.142 ; [#uses=1] + %tmp.145 = load i8** %tmp.101 ; [#uses=1] + %tmp.146 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 5 ; [#uses=1] + %tmp.147 = load i32* %tmp.146 ; [#uses=1] + %tmp.149 = load i32* %tmp.114 ; [#uses=1] + %tmp.154 = load i32* %full_stats ; [#uses=1] + %tmp.155 = load i32* %verify_binary_search ; [#uses=1] + %tmp.156 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 0 ; [#uses=1] + %tmp.157 = load i32* %tmp.156 ; [#uses=1] + %tmp.158 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 1 ; [#uses=1] + %tmp.159 = load float* %tmp.158 ; [#uses=1] + %tmp.160 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 2 ; [#uses=1] + %tmp.161 = load float* %tmp.160 ; [#uses=1] + %tmp.162 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 3 ; [#uses=1] + %tmp.163 = load float* %tmp.162 ; [#uses=1] + %tmp.164 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 4 ; [#uses=1] + %tmp.165 = load float* %tmp.164 ; [#uses=1] + %tmp.166 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 0 ; [#uses=1] + %tmp.167 = load float* %tmp.166 ; [#uses=1] + %tmp.168 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 1 ; [#uses=1] + %tmp.169 = load float* %tmp.168 ; [#uses=1] + %tmp.170 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 2 ; [#uses=1] + %tmp.171 = load float* %tmp.170 ; [#uses=1] + %tmp.172 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 3 ; [#uses=1] + %tmp.173 = load float* %tmp.172 ; [#uses=1] + %tmp.174 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 4 ; [#uses=1] + %tmp.175 = load float* %tmp.174 ; [#uses=1] + %tmp.176 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 5 ; [#uses=1] + %tmp.177 = load i32* %tmp.176 ; [#uses=1] + %tmp.178 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 6 ; [#uses=1] + %tmp.179 = load i32* %tmp.178 ; [#uses=1] + %tmp.181 = load i32* %tmp.118 ; [#uses=1] + %tmp.182 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 8 ; [#uses=1] + %tmp.183 = load i32* %tmp.182 ; [#uses=1] + %tmp.184 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 0 ; [#uses=1] + %tmp.185 = load i32* %tmp.184 ; [#uses=1] + %tmp.186 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 1 ; [#uses=1] + %tmp.187 = load float* %tmp.186 ; [#uses=1] + %tmp.188 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 2 ; [#uses=1] + %tmp.189 = load float* %tmp.188 ; [#uses=1] + %tmp.190 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 3 ; [#uses=1] + %tmp.191 = load float* %tmp.190 ; [#uses=1] + %tmp.192 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 4 ; [#uses=1] + %tmp.193 = load i32* %tmp.192 ; [#uses=1] + %tmp.194 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 5 ; [#uses=1] + %tmp.195 = load i32* %tmp.194 ; [#uses=1] + %tmp.196 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 6 ; [#uses=1] + %tmp.197 = load i16* %tmp.196 ; [#uses=1] + %tmp.198 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 7 ; [#uses=1] + %tmp.199 = load i16* %tmp.198 ; [#uses=1] + %tmp.200 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 8 ; [#uses=1] + %tmp.201 = load i16* %tmp.200 ; [#uses=1] + %tmp.202 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 9 ; [#uses=1] + %tmp.203 = load float* %tmp.202 ; [#uses=1] + %tmp.204 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 10 ; [#uses=1] + %tmp.205 = load float* %tmp.204 ; [#uses=1] + %tmp.206 = load %struct..s_segment_inf** %segment_inf ; <%struct..s_segment_inf*> [#uses=1] + %tmp.208 = load i32* %tmp.109 ; [#uses=1] + %tmp.209 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 1 ; [#uses=1] + %tmp.210 = load float* %tmp.209 ; [#uses=1] + %tmp.211 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 2 ; [#uses=1] + %tmp.212 = load float* %tmp.211 ; [#uses=1] + %tmp.213 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 3 ; [#uses=1] + %tmp.214 = load float* %tmp.213 ; [#uses=1] + %tmp.215 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 4 ; [#uses=1] + %tmp.216 = load float* %tmp.215 ; [#uses=1] + %tmp.217 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 5 ; [#uses=1] + %tmp.218 = load float* %tmp.217 ; [#uses=1] + %tmp.219 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 6 ; [#uses=1] + %tmp.220 = load float* %tmp.219 ; [#uses=1] + %tmp.221 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 7 ; [#uses=1] + %tmp.222 = load float* %tmp.221 ; [#uses=1] + %tmp.223 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 8 ; [#uses=1] + %tmp.224 = load float* %tmp.223 ; [#uses=1] + %tmp.225 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 9 ; [#uses=1] + %tmp.226 = load float* %tmp.225 ; [#uses=1] + %tmp.227 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 10 ; [#uses=1] + %tmp.228 = load float* %tmp.227 ; [#uses=1] + call void @place_and_route( i32 %tmp.135, i32 %tmp.137, float %tmp.139, i32 %tmp.141, i32 %tmp.143, i8* %tmp.145, i32 %tmp.147, i32 %tmp.149, i8* %tmp.107, i8* %tmp.105, i8* %tmp.106, i8* %tmp.108, i32 %tmp.154, i32 %tmp.155, i32 %tmp.157, float %tmp.159, float %tmp.161, float %tmp.163, float %tmp.165, float %tmp.167, float %tmp.169, float %tmp.171, float %tmp.173, float %tmp.175, i32 %tmp.177, i32 %tmp.179, i32 %tmp.181, i32 %tmp.183, i32 %tmp.185, float %tmp.187, float %tmp.189, float %tmp.191, i32 %tmp.193, i32 %tmp.195, i16 %tmp.197, i16 %tmp.199, i16 %tmp.201, float %tmp.203, float %tmp.205, %struct..s_segment_inf* %tmp.206, i32 %tmp.208, float %tmp.210, float %tmp.212, float %tmp.214, float %tmp.216, float %tmp.218, float %tmp.220, float %tmp.222, float %tmp.224, float %tmp.226, float %tmp.228 ) + %tmp.231 = load i32* %show_graphics ; [#uses=1] + %tmp.232 = icmp ne i32 %tmp.231, 0 ; [#uses=1] + br i1 %tmp.232, label %then.2, label %endif.2 -then.2: +then.2: ; preds = %entry br label %endif.2 -endif.2: - ret int 0 +endif.2: ; preds = %then.2, %entry + ret i32 0 } -declare int %printf(sbyte*, ...) +declare i32 @printf(i8*, ...) -declare void %place_and_route(int, int, float, int, uint, sbyte*, uint, int, sbyte*, sbyte*, sbyte*, sbyte*, uint, uint, uint, float, float, float, float, float, float, float, float, float, int, int, uint, int, uint, float, float, float, uint, int, short, short, short, float, float, %struct..s_segment_inf*, uint, float, float, float, float, float, float, float, float, float, float) +declare void @place_and_route(i32, i32, float, i32, i32, i8*, i32, i32, i8*, i8*, i8*, i8*, i32, i32, i32, float, float, float, float, float, float, float, float, float, i32, i32, i32, i32, i32, float, float, float, i32, i32, i16, i16, i16, float, float, %struct..s_segment_inf*, i32, float, float, float, float, float, float, float, float, float, float) diff --git a/test/CodeGen/Generic/2003-05-30-BadFoldGEP.ll b/test/CodeGen/Generic/2003-05-30-BadFoldGEP.ll index 61d802c..41c90bd 100644 --- a/test/CodeGen/Generic/2003-05-30-BadFoldGEP.ll +++ b/test/CodeGen/Generic/2003-05-30-BadFoldGEP.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; Date: May 28, 2003. ;; From: test/Programs/External/SPEC/CINT2000/254.gap.llvm.bc @@ -16,35 +16,24 @@ ;; The next instruction contributes a leading non-zero so another ;; zero should not be added before it! ;; + %FileType = type { i32, [256 x i8], i32, i32, i32, i32 } +@OutputFiles = external global [16 x %FileType] ; <[16 x %FileType]*> [#uses=1] +@Output = internal global %FileType* null ; <%FileType**> [#uses=1] - -%FileType = type { int, [256 x sbyte], int, int, int, int } -%OutputFiles = uninitialized global [16 x %FileType] -%Output = internal global %FileType* null - - -implementation; Functions: - -internal int %OpenOutput(sbyte* %filename.1) { +define internal i32 @OpenOutput(i8* %filename.1) { entry: - %tmp.0 = load %FileType** %Output - %tmp.4 = getelementptr %FileType* %tmp.0, long 1 - - ;;------ Original instruction in 254.gap.llvm.bc: - ;; %tmp.10 = seteq { int, [256 x sbyte], int, int, int, int }* %tmp.4, getelementptr ([16 x { int, [256 x sbyte], int, int, int, int }]* getelementptr ([16 x { int, [256 x sbyte], int, int, int, int }]* %OutputFiles, long 1), long 0, long 0) - - ;;------ Code sequence produced by preselection phase for above instr: - ;; This code sequence is folded incorrectly by llc during selection - ;; causing an assertion about a dynamic casting error. - %addrOfGlobal = getelementptr [16 x %FileType]* %OutputFiles, long 0 - %constantGEP = getelementptr [16 x %FileType]* %addrOfGlobal, long 1 - %constantGEP = getelementptr [16 x %FileType]* %constantGEP, long 0, long 0 - %tmp.10 = seteq %FileType* %tmp.4, %constantGEP - br bool %tmp.10, label %return, label %endif.0 - -endif.0: - ret int 0 - -return: - ret int 1 + %tmp.0 = load %FileType** @Output ; <%FileType*> [#uses=1] + %tmp.4 = getelementptr %FileType* %tmp.0, i64 1 ; <%FileType*> [#uses=1] + %addrOfGlobal = getelementptr [16 x %FileType]* @OutputFiles, i64 0 ; <[16 x %FileType]*> [#uses=1] + %constantGEP = getelementptr [16 x %FileType]* %addrOfGlobal, i64 1 ; <[16 x %FileType]*> [#uses=1] + %constantGEP.upgrd.1 = getelementptr [16 x %FileType]* %constantGEP, i64 0, i64 0 ; <%FileType*> [#uses=1] + %tmp.10 = icmp eq %FileType* %tmp.4, %constantGEP.upgrd.1 ; [#uses=1] + br i1 %tmp.10, label %return, label %endif.0 + +endif.0: ; preds = %entry + ret i32 0 + +return: ; preds = %entry + ret i32 1 } + diff --git a/test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll b/test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll index e9cac7f..43bff82 100644 --- a/test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll +++ b/test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; Date: May 28, 2003. ;; From: test/Programs/SingleSource/richards_benchmark.c @@ -9,26 +9,25 @@ ;; causes llc to produces an invalid register ;; for the phi arguments. - %struct..packet = type { %struct..packet*, int, int, int, [4 x sbyte] } - %struct..task = type { %struct..task*, int, int, %struct..packet*, int, %struct..task* (%struct..packet*)*, int, int } -%v1 = external global int -%v2 = external global int + %struct..packet = type { %struct..packet*, i32, i32, i32, [4 x i8] } + %struct..task = type { %struct..task*, i32, i32, %struct..packet*, i32, %struct..task* (%struct..packet*)*, i32, i32 } +@v1 = external global i32 ; [#uses=1] +@v2 = external global i32 ; [#uses=1] -implementation ; Functions: +define %struct..task* @handlerfn(%struct..packet* %pkt.2) { +entry: + %tmp.1 = icmp ne %struct..packet* %pkt.2, null ; [#uses=1] + br i1 %tmp.1, label %cond_false, label %cond_continue -%struct..task* %handlerfn(%struct..packet* %pkt.2) { -entry: ; No predecessors! - %tmp.1 = setne %struct..packet* %pkt.2, null - br bool %tmp.1, label %cond_false, label %cond_continue +cond_false: ; preds = %entry + br label %cond_continue -cond_false: ; preds = %entry - br label %cond_continue - -cond_continue: ; preds = %entry, %cond_false - %mem_tmp.0 = phi int* [ %v2, %cond_false ], [ %v1, %entry ] - %tmp.12 = cast int* %mem_tmp.0 to %struct..packet* - call void %append( %struct..packet* %pkt.2, %struct..packet* %tmp.12 ) - ret %struct..task* null +cond_continue: ; preds = %cond_false, %entry + %mem_tmp.0 = phi i32* [ @v2, %cond_false ], [ @v1, %entry ] ; [#uses=1] + %tmp.12 = bitcast i32* %mem_tmp.0 to %struct..packet* ; <%struct..packet*> [#uses=1] + call void @append( %struct..packet* %pkt.2, %struct..packet* %tmp.12 ) + ret %struct..task* null } -declare void %append(%struct..packet*, %struct..packet*) +declare void @append(%struct..packet*, %struct..packet*) + diff --git a/test/CodeGen/Generic/2003-07-06-BadIntCmp.ll b/test/CodeGen/Generic/2003-07-06-BadIntCmp.ll index a741ebc..d66ea18 100644 --- a/test/CodeGen/Generic/2003-07-06-BadIntCmp.ll +++ b/test/CodeGen/Generic/2003-07-06-BadIntCmp.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; Date: May 28, 2003. ;; From: test/Programs/MultiSource/Olden-perimeter/maketree.c @@ -12,41 +12,40 @@ ;; is wrong because the value being compared (int euclid = x*x + y*y) ;; overflows, so that the 64-bit and 32-bit compares are not equal. -%.str_1 = internal constant [6 x sbyte] c"true\0A\00" -%.str_2 = internal constant [7 x sbyte] c"false\0A\00" +@.str_1 = internal constant [6 x i8] c"true\0A\00" ; <[6 x i8]*> [#uses=1] +@.str_2 = internal constant [7 x i8] c"false\0A\00" ; <[7 x i8]*> [#uses=1] -implementation ; Functions: +declare i32 @printf(i8*, ...) -declare int %printf(sbyte*, ...) - -internal void %__main() { -entry: ; No predecessors! - ret void +define internal void @__main() { +entry: + ret void } -internal void %CheckOutside(int %x.1, int %y.1) { -entry: ; No predecessors! - %tmp.2 = mul int %x.1, %x.1 ; [#uses=1] - %tmp.5 = mul int %y.1, %y.1 ; [#uses=1] - %tmp.6 = add int %tmp.2, %tmp.5 ; [#uses=1] - %tmp.8 = setle int %tmp.6, 4194304 ; [#uses=1] - br bool %tmp.8, label %then, label %else +define internal void @CheckOutside(i32 %x.1, i32 %y.1) { +entry: + %tmp.2 = mul i32 %x.1, %x.1 ; [#uses=1] + %tmp.5 = mul i32 %y.1, %y.1 ; [#uses=1] + %tmp.6 = add i32 %tmp.2, %tmp.5 ; [#uses=1] + %tmp.8 = icmp sle i32 %tmp.6, 4194304 ; [#uses=1] + br i1 %tmp.8, label %then, label %else -then: ; preds = %entry - %tmp.11 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([6 x sbyte]* %.str_1, long 0, long 0) ) ; [#uses=0] - br label %UnifiedExitNode +then: ; preds = %entry + %tmp.11 = call i32 (i8*, ...)* @printf( i8* getelementptr ([6 x i8]* @.str_1, i64 0, i64 0) ) ; [#uses=0] + br label %UnifiedExitNode -else: ; preds = %entry - %tmp.13 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([7 x sbyte]* %.str_2, long 0, long 0) ) ; [#uses=0] - br label %UnifiedExitNode +else: ; preds = %entry + %tmp.13 = call i32 (i8*, ...)* @printf( i8* getelementptr ([7 x i8]* @.str_2, i64 0, i64 0) ) ; [#uses=0] + br label %UnifiedExitNode -UnifiedExitNode: ; preds = %then, %else - ret void +UnifiedExitNode: ; preds = %else, %then + ret void } -int %main() { -entry: ; No predecessors! - call void %__main( ) - call void %CheckOutside( int 2097152, int 2097152 ) - ret int 0 +define i32 @main() { +entry: + call void @__main( ) + call void @CheckOutside( i32 2097152, i32 2097152 ) + ret i32 0 } + diff --git a/test/CodeGen/Generic/2003-07-07-BadLongConst.ll b/test/CodeGen/Generic/2003-07-07-BadLongConst.ll index 376ef19..80738d5 100644 --- a/test/CodeGen/Generic/2003-07-07-BadLongConst.ll +++ b/test/CodeGen/Generic/2003-07-07-BadLongConst.ll @@ -1,22 +1,20 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc +@.str_1 = internal constant [42 x i8] c" ui = %u (0x%x)\09\09UL-ui = %lld (0x%llx)\0A\00" ; <[42 x i8]*> [#uses=1] -%.str_1 = internal constant [42 x sbyte] c" ui = %u (0x%x)\09\09UL-ui = %lld (0x%llx)\0A\00" +declare i32 @printf(i8*, ...) -implementation ; Functions: - -declare int %printf(sbyte*, ...) - -internal ulong %getL() { -entry: ; No predecessors! - ret ulong 12659530247033960611 +define internal i64 @getL() { +entry: + ret i64 -5787213826675591005 } -int %main(int %argc.1, sbyte** %argv.1) { -entry: ; No predecessors! - %tmp.11 = call ulong %getL( ) - %tmp.5 = cast ulong %tmp.11 to uint - %tmp.23 = and ulong %tmp.11, 18446744069414584320 - %tmp.16 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([42 x sbyte]* %.str_1, long 0, long 0), uint %tmp.5, uint %tmp.5, ulong %tmp.23, ulong %tmp.23 ) - ret int 0 +define i32 @main(i32 %argc.1, i8** %argv.1) { +entry: + %tmp.11 = call i64 @getL( ) ; [#uses=2] + %tmp.5 = trunc i64 %tmp.11 to i32 ; [#uses=2] + %tmp.23 = and i64 %tmp.11, -4294967296 ; [#uses=2] + %tmp.16 = call i32 (i8*, ...)* @printf( i8* getelementptr ([42 x i8]* @.str_1, i64 0, i64 0), i32 %tmp.5, i32 %tmp.5, i64 %tmp.23, i64 %tmp.23 ) ; [#uses=0] + ret i32 0 } + diff --git a/test/CodeGen/Generic/2003-07-08-BadCastToBool.ll b/test/CodeGen/Generic/2003-07-08-BadCastToBool.ll index 2fede53..4532b76 100644 --- a/test/CodeGen/Generic/2003-07-08-BadCastToBool.ll +++ b/test/CodeGen/Generic/2003-07-08-BadCastToBool.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; Date: Jul 8, 2003. ;; From: test/Programs/MultiSource/Olden-perimeter @@ -11,26 +11,24 @@ ;; for bitwise operations but not booleans! For booleans, ;; the result has to be compared with 0. -%.str_1 = internal constant [30 x sbyte] c"d = %d, ct = %d, d ^ ct = %d\0A\00" +@.str_1 = internal constant [30 x i8] c"d = %d, ct = %d, d ^ ct = %d\0A\00" +declare i32 @printf(i8*, ...) -implementation ; Functions: - -declare int %printf(sbyte*, ...) - -int %adj(uint %d.1, uint %ct.1) { +define i32 @adj(i32 %d.1, i32 %ct.1) { entry: - %tmp.19 = seteq uint %ct.1, 2 - %tmp.22.not = cast uint %ct.1 to bool - %tmp.221 = xor bool %tmp.22.not, true - %tmp.26 = or bool %tmp.19, %tmp.221 - %tmp.27 = cast bool %tmp.26 to int - ret int %tmp.27 + %tmp.19 = icmp eq i32 %ct.1, 2 ; [#uses=1] + %tmp.22.not = trunc i32 %ct.1 to i1 ; [#uses=1] + %tmp.221 = xor i1 %tmp.22.not, true ; [#uses=1] + %tmp.26 = or i1 %tmp.19, %tmp.221 ; [#uses=1] + %tmp.27 = zext i1 %tmp.26 to i32 ; [#uses=1] + ret i32 %tmp.27 } -int %main() { +define i32 @main() { entry: - %result = call int %adj(uint 3, uint 2) - %tmp.0 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([30 x sbyte]* %.str_1, long 0, long 0), uint 3, uint 2, int %result) - ret int 0 + %result = call i32 @adj( i32 3, i32 2 ) ; [#uses=1] + %tmp.0 = call i32 (i8*, ...)* @printf( i8* getelementptr ([30 x i8]* @.str_1, i64 0, i64 0), i32 3, i32 2, i32 %result ) ; [#uses=0] + ret i32 0 } + diff --git a/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll b/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll index 09a0431..54880db 100644 --- a/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll +++ b/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; Date: Jul 29, 2003. ;; From: test/Programs/MultiSource/Ptrdist-bc @@ -14,28 +14,27 @@ ;; .ascii "\000\001\001\001\001\001\001\001\001\002\003\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\002\004\005\001\001\006\a\001\b\t\n\v\f\r\016\017\020\020\020\020\020\020\020\020\020\020\001\021\022\023\024\001\001\025\025\025\025\025\025\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\026\027\030\031\032\001\033\034\035\036\037 !\"#$%&'()*+,-./$0$1$234\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001" ;; +@yy_ec = internal constant [6 x i8] c"\06\07\01\08\01\09" ; <[6 x i8]*> [#uses=1] +@.str_3 = internal constant [8 x i8] c"[%d] = \00" ; <[8 x i8]*> [#uses=1] +@.str_4 = internal constant [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1] -%yy_ec = internal constant [6 x sbyte] c"\06\07\01\08\01\09" +declare i32 @printf(i8*, ...) -%.str_3 = internal constant [8 x sbyte] c"[%d] = \00" -%.str_4 = internal constant [4 x sbyte] c"%d\0A\00" +define i32 @main() { +entry: + br label %loopentry -implementation +loopentry: ; preds = %loopentry, %entry + %i = phi i64 [ 0, %entry ], [ %inc.i, %loopentry ] ; [#uses=3] + %cptr = getelementptr [6 x i8]* @yy_ec, i64 0, i64 %i ; [#uses=1] + %c = load i8* %cptr ; [#uses=1] + %ignore = call i32 (i8*, ...)* @printf( i8* getelementptr ([8 x i8]* @.str_3, i64 0, i64 0), i64 %i ) ; [#uses=0] + %ignore2 = call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @.str_4, i64 0, i64 0), i8 %c ) ; [#uses=0] + %inc.i = add i64 %i, 1 ; [#uses=2] + %done = icmp sle i64 %inc.i, 5 ; [#uses=1] + br i1 %done, label %loopentry, label %exit.1 -declare int %printf(sbyte*, ...) +exit.1: ; preds = %loopentry + ret i32 0 +} -int %main() { -entry: - br label %loopentry -loopentry: - %i = phi long [0, %entry], [%inc.i, %loopentry] - %cptr = getelementptr [6 x sbyte]* %yy_ec, long 0, long %i - %c = load sbyte* %cptr - %ignore = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([8 x sbyte]* %.str_3, long 0, long 0), long %i) - %ignore2 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([4 x sbyte]* %.str_4, long 0, long 0), sbyte %c) - %inc.i = add long %i, 1 - %done = setle long %inc.i, 5 - br bool %done, label %loopentry, label %exit.1 -exit.1: - ret int 0 -}; diff --git a/test/CodeGen/Generic/2004-02-08-UnwindSupport.llx b/test/CodeGen/Generic/2004-02-08-UnwindSupport.llx index 6e57fbc..10d4069 100644 --- a/test/CodeGen/Generic/2004-02-08-UnwindSupport.llx +++ b/test/CodeGen/Generic/2004-02-08-UnwindSupport.llx @@ -1,13 +1,17 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -enable-correct-eh-support +; RUN: llvm-as < %s | llc -enable-correct-eh-support -int %test() { - unwind +define i32 @test() { + unwind } -int %main() { - %X = invoke int %test() to label %cont except label %EH -cont: - ret int 1 -EH: - ret int 0 +define i32 @main() { + %X = invoke i32 @test( ) + to label %cont unwind label %EH ; [#uses=0] + +cont: ; preds = %0 + ret i32 1 + +EH: ; preds = %0 + ret i32 0 } + diff --git a/test/CodeGen/Generic/2004-05-09-LiveVarPartialRegister.llx b/test/CodeGen/Generic/2004-05-09-LiveVarPartialRegister.llx index 82d33a0..1f58ce1 100644 --- a/test/CodeGen/Generic/2004-05-09-LiveVarPartialRegister.llx +++ b/test/CodeGen/Generic/2004-05-09-LiveVarPartialRegister.llx @@ -1,15 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc +@global_long_1 = linkonce global i64 7 ; [#uses=1] +@global_long_2 = linkonce global i64 49 ; [#uses=1] -%global_long_1 = linkonce global long 7 -%global_long_2 = linkonce global long 49 - -implementation ; Functions: - -int %main() { - %l1 = load long* %global_long_1 - %l2 = load long* %global_long_2 - %cond = setle long %l1, %l2 - %cast2 = cast bool %cond to int - %RV = sub int 1, %cast2 - ret int %RV +define i32 @main() { + %l1 = load i64* @global_long_1 ; [#uses=1] + %l2 = load i64* @global_long_2 ; [#uses=1] + %cond = icmp sle i64 %l1, %l2 ; [#uses=1] + %cast2 = zext i1 %cond to i32 ; [#uses=1] + %RV = sub i32 1, %cast2 ; [#uses=1] + ret i32 %RV } + diff --git a/test/CodeGen/Generic/2005-01-18-SetUO-InfLoop.ll b/test/CodeGen/Generic/2005-01-18-SetUO-InfLoop.ll index e47aa18..ed8b2a2 100644 --- a/test/CodeGen/Generic/2005-01-18-SetUO-InfLoop.ll +++ b/test/CodeGen/Generic/2005-01-18-SetUO-InfLoop.ll @@ -1,19 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -void %intersect_pixel() { +define void @intersect_pixel() { entry: - %tmp125 = call bool %llvm.isunordered.f64( double 0.000000e+00, double 0.000000e+00 ) ; [#uses=1] - %tmp126 = or bool %tmp125, false ; [#uses=1] - %tmp126.not = xor bool %tmp126, true ; [#uses=1] - %brmerge1 = or bool %tmp126.not, false ; [#uses=1] - br bool %brmerge1, label %bb154, label %cond_false133 + %tmp125 = fcmp uno double 0.000000e+00, 0.000000e+00 ; [#uses=1] + %tmp126 = or i1 %tmp125, false ; [#uses=1] + %tmp126.not = xor i1 %tmp126, true ; [#uses=1] + %brmerge1 = or i1 %tmp126.not, false ; [#uses=1] + br i1 %brmerge1, label %bb154, label %cond_false133 -cond_false133: ; preds = %entry - ret void +cond_false133: ; preds = %entry + ret void -bb154: ; preds = %entry - %tmp164 = seteq uint 0, 0 ; [#uses=0] - ret void +bb154: ; preds = %entry + %tmp164 = icmp eq i32 0, 0 ; [#uses=0] + ret void } -declare bool %llvm.isunordered.f64(double, double) +declare i1 @llvm.isunordered.f64(double, double) + diff --git a/test/CodeGen/Generic/2005-04-09-GlobalInPHI.ll b/test/CodeGen/Generic/2005-04-09-GlobalInPHI.ll index 54f9883..37aaa32 100644 --- a/test/CodeGen/Generic/2005-04-09-GlobalInPHI.ll +++ b/test/CodeGen/Generic/2005-04-09-GlobalInPHI.ll @@ -1,21 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc - %struct.TypHeader = type { uint, %struct.TypHeader**, [3 x sbyte], ubyte } -%.str_67 = external global [4 x sbyte] ; <[4 x sbyte]*> [#uses=1] -%.str_87 = external global [17 x sbyte] ; <[17 x sbyte]*> [#uses=1] +; RUN: llvm-as < %s | llc + %struct.TypHeader = type { i32, %struct.TypHeader**, [3 x i8], i8 } +@.str_67 = external global [4 x i8] ; <[4 x i8]*> [#uses=1] +@.str_87 = external global [17 x i8] ; <[17 x i8]*> [#uses=1] -implementation ; Functions: - -void %PrBinop() { +define void @PrBinop() { entry: - br bool false, label %cond_true, label %else.0 + br i1 false, label %cond_true, label %else.0 -cond_true: ; preds = %entry - br label %else.0 +cond_true: ; preds = %entry + br label %else.0 -else.0: - %tmp.167.1 = phi int [ cast ([17 x sbyte]* %.str_87 to int), %entry ], [ 0, %cond_true ] - call void %Pr( sbyte* getelementptr ([4 x sbyte]* %.str_67, int 0, int 0), int 0, int 0 ) - ret void +else.0: ; preds = %cond_true, %entry + %tmp.167.1 = phi i32 [ ptrtoint ([17 x i8]* @.str_87 to i32), %entry ], [ 0, %cond_true ] ; [#uses=0] + call void @Pr( i8* getelementptr ([4 x i8]* @.str_67, i32 0, i32 0), i32 0, i32 0 ) + ret void } -declare void %Pr(sbyte*, int, int) +declare void @Pr(i8*, i32, i32) + diff --git a/test/CodeGen/Generic/2005-07-12-memcpy-i64-length.ll b/test/CodeGen/Generic/2005-07-12-memcpy-i64-length.ll index 3224d1a..ab3a31d 100644 --- a/test/CodeGen/Generic/2005-07-12-memcpy-i64-length.ll +++ b/test/CodeGen/Generic/2005-07-12-memcpy-i64-length.ll @@ -1,11 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ; Test that llvm.memcpy works with a i64 length operand on all targets. +declare void @llvm.memcpy.i64(i8*, i8*, i64, i32) -declare void %llvm.memcpy.i64(sbyte*, sbyte*, ulong, uint) - -void %l12_l94_bc_divide_endif_2E_3_2E_ce() { +define void @l12_l94_bc_divide_endif_2E_3_2E_ce() { newFuncRoot: - tail call void %llvm.memcpy.i64( sbyte* null, sbyte* null, ulong 0, uint 1 ) - unreachable + tail call void @llvm.memcpy.i64( i8* null, i8* null, i64 0, i32 1 ) + unreachable } + diff --git a/test/CodeGen/Generic/2005-10-18-ZeroSizeStackObject.ll b/test/CodeGen/Generic/2005-10-18-ZeroSizeStackObject.ll index e7cce1f..b2bea1c 100644 --- a/test/CodeGen/Generic/2005-10-18-ZeroSizeStackObject.ll +++ b/test/CodeGen/Generic/2005-10-18-ZeroSizeStackObject.ll @@ -1,6 +1,6 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -void %test() { - %X = alloca {} - ret void +define void @test() { + %X = alloca { } ; <{ }*> [#uses=0] + ret void } diff --git a/test/CodeGen/Generic/2005-10-21-longlonggtu.ll b/test/CodeGen/Generic/2005-10-21-longlonggtu.ll index d445e59..b355b02 100644 --- a/test/CodeGen/Generic/2005-10-21-longlonggtu.ll +++ b/test/CodeGen/Generic/2005-10-21-longlonggtu.ll @@ -1,12 +1,16 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -float %t(long %u_arg) { - %u = cast long %u_arg to ulong ; [#uses=1] - %tmp5 = add ulong %u, 9007199254740991 ; [#uses=1] - %tmp = setgt ulong %tmp5, 18014398509481982 ; [#uses=1] - br bool %tmp, label %T, label %F -T: - ret float 1.0 -F: - call float %t(long 0) - ret float 0.0 +; RUN: llvm-as < %s | llc + +define float @t(i64 %u_arg) { + %u = bitcast i64 %u_arg to i64 ; [#uses=1] + %tmp5 = add i64 %u, 9007199254740991 ; [#uses=1] + %tmp = icmp ugt i64 %tmp5, 18014398509481982 ; [#uses=1] + br i1 %tmp, label %T, label %F + +T: ; preds = %0 + ret float 1.000000e+00 + +F: ; preds = %0 + call float @t( i64 0 ) ; :1 [#uses=0] + ret float 0.000000e+00 } + diff --git a/test/CodeGen/Generic/2005-12-01-Crash.ll b/test/CodeGen/Generic/2005-12-01-Crash.ll index a9d8deb..ee72ee1 100644 --- a/test/CodeGen/Generic/2005-12-01-Crash.ll +++ b/test/CodeGen/Generic/2005-12-01-Crash.ll @@ -1,23 +1,20 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc +@str = external global [36 x i8] ; <[36 x i8]*> [#uses=0] +@str.upgrd.1 = external global [29 x i8] ; <[29 x i8]*> [#uses=0] +@str1 = external global [29 x i8] ; <[29 x i8]*> [#uses=0] +@str2 = external global [29 x i8] ; <[29 x i8]*> [#uses=1] +@str.upgrd.2 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] +@str3 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] +@str4 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] +@str5 = external global [2 x i8] ; <[2 x i8]*> [#uses=0] -%str = external global [36 x sbyte] ; <[36 x sbyte]*> [#uses=0] -%str = external global [29 x sbyte] ; <[29 x sbyte]*> [#uses=0] -%str1 = external global [29 x sbyte] ; <[29 x sbyte]*> [#uses=0] -%str2 = external global [29 x sbyte] ; <[29 x sbyte]*> [#uses=1] -%str = external global [2 x sbyte] ; <[2 x sbyte]*> [#uses=0] -%str3 = external global [2 x sbyte] ; <[2 x sbyte]*> [#uses=0] -%str4 = external global [2 x sbyte] ; <[2 x sbyte]*> [#uses=0] -%str5 = external global [2 x sbyte] ; <[2 x sbyte]*> [#uses=0] - -implementation ; Functions: - -void %printArgsNoRet(int %a1, float %a2, sbyte %a3, double %a4, sbyte* %a5, int %a6, float %a7, sbyte %a8, double %a9, sbyte* %a10, int %a11, float %a12, sbyte %a13, double %a14, sbyte* %a15) { +define void @printArgsNoRet(i32 %a1, float %a2, i8 %a3, double %a4, i8* %a5, i32 %a6, float %a7, i8 %a8, double %a9, i8* %a10, i32 %a11, float %a12, i8 %a13, double %a14, i8* %a15) { entry: - %tmp17 = cast sbyte %a13 to int ; [#uses=1] - %tmp23 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([29 x sbyte]* %str2, int 0, uint 0), int %a11, double 0.000000e+00, int %tmp17, double %a14, int 0 ) ; [#uses=0] + %tmp17 = sext i8 %a13 to i32 ; [#uses=1] + %tmp23 = call i32 (i8*, ...)* @printf( i8* getelementptr ([29 x i8]* @str2, i32 0, i64 0), i32 %a11, double 0.000000e+00, i32 %tmp17, double %a14, i32 0 ) ; [#uses=0] ret void } -declare int %printf(sbyte*, ...) +declare i32 @printf(i8*, ...) -declare int %main(int, sbyte**) +declare i32 @main(i32, i8**) diff --git a/test/CodeGen/Generic/2005-12-12-ExpandSextInreg.ll b/test/CodeGen/Generic/2005-12-12-ExpandSextInreg.ll index ef1359e..bd2e043 100644 --- a/test/CodeGen/Generic/2005-12-12-ExpandSextInreg.ll +++ b/test/CodeGen/Generic/2005-12-12-ExpandSextInreg.ll @@ -1,7 +1,7 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -long %test(long %A) { - %B = cast long %A to sbyte - %C = cast sbyte %B to long - ret long %C +define i64 @test(i64 %A) { + %B = trunc i64 %A to i8 ; [#uses=1] + %C = sext i8 %B to i64 ; [#uses=1] + ret i64 %C } diff --git a/test/CodeGen/Generic/2006-01-12-BadSetCCFold.ll b/test/CodeGen/Generic/2006-01-12-BadSetCCFold.ll index 876e9f2..1a555b3 100644 --- a/test/CodeGen/Generic/2006-01-12-BadSetCCFold.ll +++ b/test/CodeGen/Generic/2006-01-12-BadSetCCFold.ll @@ -1,33 +1,31 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc +; ModuleID = '2006-01-12-BadSetCCFold.ll' + %struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, i32, i32 } - %struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, int, int } - -implementation ; Functions: - -void %main() { +define void @main() { entry: - br bool false, label %then.2.i, label %endif.2.i + br i1 false, label %then.2.i, label %endif.2.i then.2.i: ; preds = %entry br label %dealwithargs.exit endif.2.i: ; preds = %entry - br bool false, label %then.3.i, label %dealwithargs.exit + br i1 false, label %then.3.i, label %dealwithargs.exit then.3.i: ; preds = %endif.2.i br label %dealwithargs.exit dealwithargs.exit: ; preds = %then.3.i, %endif.2.i, %then.2.i - %n_nodes.4 = phi int [ 64, %then.3.i ], [ 64, %then.2.i ], [ 64, %endif.2.i ] ; [#uses=1] - %tmp.14.i1134.i.i = setgt int %n_nodes.4, 1 ; [#uses=2] - br bool %tmp.14.i1134.i.i, label %no_exit.i12.i.i, label %fill_table.exit22.i.i + %n_nodes.4 = phi i32 [ 64, %then.3.i ], [ 64, %then.2.i ], [ 64, %endif.2.i ] ; [#uses=1] + %tmp.14.i1134.i.i = icmp sgt i32 %n_nodes.4, 1 ; [#uses=2] + br i1 %tmp.14.i1134.i.i, label %no_exit.i12.i.i, label %fill_table.exit22.i.i no_exit.i12.i.i: ; preds = %no_exit.i12.i.i, %dealwithargs.exit - br bool false, label %fill_table.exit22.i.i, label %no_exit.i12.i.i + br i1 false, label %fill_table.exit22.i.i, label %no_exit.i12.i.i fill_table.exit22.i.i: ; preds = %no_exit.i12.i.i, %dealwithargs.exit %cur_node.0.i8.1.i.i = phi %struct.node_t* [ undef, %dealwithargs.exit ], [ null, %no_exit.i12.i.i ] ; <%struct.node_t*> [#uses=0] - br bool %tmp.14.i1134.i.i, label %no_exit.i.preheader.i.i, label %make_tables.exit.i + br i1 %tmp.14.i1134.i.i, label %no_exit.i.preheader.i.i, label %make_tables.exit.i no_exit.i.preheader.i.i: ; preds = %fill_table.exit22.i.i ret void diff --git a/test/CodeGen/Generic/2006-01-18-InvalidBranchOpcodeAssert.ll b/test/CodeGen/Generic/2006-01-18-InvalidBranchOpcodeAssert.ll index 73fd658..b1e08c7 100644 --- a/test/CodeGen/Generic/2006-01-18-InvalidBranchOpcodeAssert.ll +++ b/test/CodeGen/Generic/2006-01-18-InvalidBranchOpcodeAssert.ll @@ -1,16 +1,15 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ; This crashed the PPC backend. -void %test() { - %tmp125 = call bool %llvm.isunordered.f64( double 0.000000e+00, double 0.000000e+00 ) ; [#uses=1] - br bool %tmp125, label %bb154, label %cond_false133 +define void @test() { + %tmp125 = fcmp uno double 0.000000e+00, 0.000000e+00 ; [#uses=1] + br i1 %tmp125, label %bb154, label %cond_false133 -cond_false133: ; preds = %entry - ret void +cond_false133: ; preds = %0 + ret void -bb154: ; preds = %entry - %tmp164 = seteq uint 0, 0 ; [#uses=0] - ret void +bb154: ; preds = %0 + %tmp164 = icmp eq i32 0, 0 ; [#uses=0] + ret void } -declare bool %llvm.isunordered.f64(double, double) diff --git a/test/CodeGen/Generic/2006-02-12-InsertLibcall.ll b/test/CodeGen/Generic/2006-02-12-InsertLibcall.ll index d18ce14..bacf8b5 100644 --- a/test/CodeGen/Generic/2006-02-12-InsertLibcall.ll +++ b/test/CodeGen/Generic/2006-02-12-InsertLibcall.ll @@ -1,54 +1,54 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -%G = external global int +; RUN: llvm-as < %s | llc +@G = external global i32 ; [#uses=1] -void %encode_one_frame(long %tmp.2i) { +define void @encode_one_frame(i64 %tmp.2i) { entry: - %tmp.9 = seteq int 0, 0 ; [#uses=1] - br bool %tmp.9, label %endif.0, label %shortcirc_next.0 + %tmp.9 = icmp eq i32 0, 0 ; [#uses=1] + br i1 %tmp.9, label %endif.0, label %shortcirc_next.0 then.5.i: ; preds = %shortcirc_next.i - %tmp.114.i = div long %tmp.2i, 3 ; [#uses=1] - %tmp.111.i = call long %lseek( int 0, long %tmp.114.i, int 1 ) ; [#uses=0] + %tmp.114.i = sdiv i64 %tmp.2i, 3 ; [#uses=1] + %tmp.111.i = call i64 @lseek( i32 0, i64 %tmp.114.i, i32 1 ) ; [#uses=0] ret void shortcirc_next.0: ; preds = %entry ret void endif.0: ; preds = %entry - %tmp.324.i = seteq int 0, 0 ; [#uses=2] - %tmp.362.i = setlt int 0, 0 ; [#uses=1] - br bool %tmp.324.i, label %else.4.i, label %then.11.i37 + %tmp.324.i = icmp eq i32 0, 0 ; [#uses=2] + %tmp.362.i = icmp slt i32 0, 0 ; [#uses=1] + br i1 %tmp.324.i, label %else.4.i, label %then.11.i37 then.11.i37: ; preds = %endif.0 ret void else.4.i: ; preds = %endif.0 - br bool %tmp.362.i, label %else.5.i, label %then.12.i + br i1 %tmp.362.i, label %else.5.i, label %then.12.i then.12.i: ; preds = %else.4.i ret void else.5.i: ; preds = %else.4.i - br bool %tmp.324.i, label %then.0.i40, label %then.17.i + br i1 %tmp.324.i, label %then.0.i40, label %then.17.i then.17.i: ; preds = %else.5.i ret void then.0.i40: ; preds = %else.5.i - %tmp.8.i42 = seteq int 0, 0 ; [#uses=1] - br bool %tmp.8.i42, label %else.1.i56, label %then.1.i52 + %tmp.8.i42 = icmp eq i32 0, 0 ; [#uses=1] + br i1 %tmp.8.i42, label %else.1.i56, label %then.1.i52 then.1.i52: ; preds = %then.0.i40 ret void else.1.i56: ; preds = %then.0.i40 - %tmp.28.i = load int* %G - %tmp.29.i = seteq int %tmp.28.i, 1 ; [#uses=1] - br bool %tmp.29.i, label %shortcirc_next.i, label %shortcirc_done.i + %tmp.28.i = load i32* @G ; [#uses=1] + %tmp.29.i = icmp eq i32 %tmp.28.i, 1 ; [#uses=1] + br i1 %tmp.29.i, label %shortcirc_next.i, label %shortcirc_done.i shortcirc_next.i: ; preds = %else.1.i56 - %tmp.34.i = seteq int 0, 3 ; [#uses=1] - br bool %tmp.34.i, label %then.5.i, label %endif.5.i + %tmp.34.i = icmp eq i32 0, 3 ; [#uses=1] + br i1 %tmp.34.i, label %then.5.i, label %endif.5.i shortcirc_done.i: ; preds = %else.1.i56 ret void @@ -57,4 +57,4 @@ endif.5.i: ; preds = %shortcirc_next.i ret void } -declare long %lseek(int, long, int) +declare i64 @lseek(i32, i64, i32) diff --git a/test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll b/test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll index 797af74..9607ebe 100644 --- a/test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll +++ b/test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll @@ -1,98 +1,95 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -; Infinite loop in the dag combiner, reduced from 176.gcc. - - %struct._obstack_chunk = type { sbyte*, %struct._obstack_chunk*, [4 x sbyte] } - %struct.anon = type { int } +; RUN: llvm-as < %s | llc +; Infinite loop in the dag combiner, reduced from 176.gcc. +%struct._obstack_chunk = type { i8*, %struct._obstack_chunk*, [4 x i8] } + %struct.anon = type { i32 } %struct.lang_decl = type opaque - %struct.lang_type = type { int, [1 x %struct.tree_node*] } - %struct.obstack = type { int, %struct._obstack_chunk*, sbyte*, sbyte*, sbyte*, int, int, %struct._obstack_chunk* (...)*, void (...)*, sbyte*, ubyte } - %struct.rtx_def = type { ushort, ubyte, ubyte, [1 x %struct.anon] } - %struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, ubyte, ubyte, ubyte, ubyte } - %struct.tree_decl = type { [12 x sbyte], sbyte*, int, %struct.tree_node*, uint, ubyte, ubyte, ubyte, ubyte, %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.anon, { %struct.rtx_def* }, %struct.tree_node*, %struct.lang_decl* } - %struct.tree_list = type { [12 x sbyte], %struct.tree_node*, %struct.tree_node* } + %struct.lang_type = type { i32, [1 x %struct.tree_node*] } + %struct.obstack = type { i32, %struct._obstack_chunk*, i8*, i8*, i8*, i32, i32, %struct._obstack_chunk* (...)*, void (...)*, i8*, i8 } + %struct.rtx_def = type { i16, i8, i8, [1 x %struct.anon] } + %struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, i8, i8, i8, i8 } + %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.anon, { %struct.rtx_def* }, %struct.tree_node*, %struct.lang_decl* } + %struct.tree_list = type { [12 x i8], %struct.tree_node*, %struct.tree_node* } %struct.tree_node = type { %struct.tree_decl } - %struct.tree_type = type { [12 x sbyte], %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, uint, ubyte, ubyte, ubyte, ubyte, uint, %struct.tree_node*, %struct.tree_node*, %struct.anon, %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.obstack*, %struct.lang_type* } -%void_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%short_integer_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%short_unsigned_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%float_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%signed_char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -%unsigned_char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] - -implementation ; Functions: + %struct.tree_type = type { [12 x i8], %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i32, i8, i8, i8, i8, i32, %struct.tree_node*, %struct.tree_node*, %struct.anon, %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.obstack*, %struct.lang_type* } +@void_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@short_integer_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@short_unsigned_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@float_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@signed_char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] +@unsigned_char_type_node = external global %struct.tree_node* ; <%struct.tree_node**> [#uses=1] -fastcc int %self_promoting_args_p(%struct.tree_node* %parms) { +define fastcc i32 @self_promoting_args_p(%struct.tree_node* %parms) { entry: - %tmp915 = seteq %struct.tree_node* %parms, null ; [#uses=1] - br bool %tmp915, label %return, label %cond_true92.preheader + %tmp915 = icmp eq %struct.tree_node* %parms, null ; [#uses=1] + br i1 %tmp915, label %return, label %cond_true92.preheader cond_true: ; preds = %cond_true92 - %tmp9.not = setne %struct.tree_node* %tmp2, %tmp7 ; [#uses=1] - %tmp14 = seteq %struct.tree_node* %tmp2, null ; [#uses=1] - %bothcond = or bool %tmp9.not, %tmp14 ; [#uses=1] - br bool %bothcond, label %return, label %cond_next18 + %tmp9.not = icmp ne %struct.tree_node* %tmp2, %tmp7 ; [#uses=1] + %tmp14 = icmp eq %struct.tree_node* %tmp2, null ; [#uses=1] + %bothcond = or i1 %tmp9.not, %tmp14 ; [#uses=1] + br i1 %bothcond, label %return, label %cond_next18 cond_next12: ; preds = %cond_true92 - %tmp14.old = seteq %struct.tree_node* %tmp2, null ; [#uses=1] - br bool %tmp14.old, label %return, label %cond_next18 + %tmp14.old = icmp eq %struct.tree_node* %tmp2, null ; [#uses=1] + br i1 %tmp14.old, label %return, label %cond_next18 cond_next18: ; preds = %cond_next12, %cond_true - %tmp20 = cast %struct.tree_node* %tmp2 to %struct.tree_type* ; <%struct.tree_type*> [#uses=1] - %tmp21 = getelementptr %struct.tree_type* %tmp20, int 0, uint 17 ; <%struct.tree_node**> [#uses=1] + %tmp20 = bitcast %struct.tree_node* %tmp2 to %struct.tree_type* ; <%struct.tree_type*> [#uses=1] + %tmp21 = getelementptr %struct.tree_type* %tmp20, i32 0, i32 17 ; <%struct.tree_node**> [#uses=1] %tmp22 = load %struct.tree_node** %tmp21 ; <%struct.tree_node*> [#uses=6] - %tmp24 = seteq %struct.tree_node* %tmp22, %tmp23 ; [#uses=1] - br bool %tmp24, label %return, label %cond_next28 + %tmp24 = icmp eq %struct.tree_node* %tmp22, %tmp23 ; [#uses=1] + br i1 %tmp24, label %return, label %cond_next28 cond_next28: ; preds = %cond_next18 - %tmp30 = cast %struct.tree_node* %tmp2 to %struct.tree_common* ; <%struct.tree_common*> [#uses=1] - %tmp = getelementptr %struct.tree_common* %tmp30, int 0, uint 2 ; [#uses=1] - %tmp = cast ubyte* %tmp to uint* ; [#uses=1] - %tmp = load uint* %tmp ; [#uses=1] - %tmp32 = cast uint %tmp to ubyte ; [#uses=1] - %tmp33 = seteq ubyte %tmp32, 7 ; [#uses=1] - br bool %tmp33, label %cond_true34, label %cond_next84 + %tmp30 = bitcast %struct.tree_node* %tmp2 to %struct.tree_common* ; <%struct.tree_common*> [#uses=1] + %tmp = getelementptr %struct.tree_common* %tmp30, i32 0, i32 2 ; [#uses=1] + %tmp.upgrd.1 = bitcast i8* %tmp to i32* ; [#uses=1] + %tmp.upgrd.2 = load i32* %tmp.upgrd.1 ; [#uses=1] + %tmp32 = trunc i32 %tmp.upgrd.2 to i8 ; [#uses=1] + %tmp33 = icmp eq i8 %tmp32, 7 ; [#uses=1] + br i1 %tmp33, label %cond_true34, label %cond_next84 cond_true34: ; preds = %cond_next28 - %tmp40 = seteq %struct.tree_node* %tmp22, %tmp39 ; [#uses=1] - %tmp49 = seteq %struct.tree_node* %tmp22, %tmp48 ; [#uses=1] - %bothcond6 = or bool %tmp40, %tmp49 ; [#uses=1] - %tmp58 = seteq %struct.tree_node* %tmp22, %tmp57 ; [#uses=1] - %bothcond7 = or bool %bothcond6, %tmp58 ; [#uses=1] - %tmp67 = seteq %struct.tree_node* %tmp22, %tmp66 ; [#uses=1] - %bothcond8 = or bool %bothcond7, %tmp67 ; [#uses=1] - %tmp76 = seteq %struct.tree_node* %tmp22, %tmp75 ; [#uses=1] - %bothcond9 = or bool %bothcond8, %tmp76 ; [#uses=2] - %brmerge = or bool %bothcond9, %tmp ; [#uses=1] - %bothcond9 = cast bool %bothcond9 to int ; [#uses=1] - %.mux = xor int %bothcond9, 1 ; [#uses=1] - br bool %brmerge, label %return, label %cond_true92 + %tmp40 = icmp eq %struct.tree_node* %tmp22, %tmp39 ; [#uses=1] + %tmp49 = icmp eq %struct.tree_node* %tmp22, %tmp48 ; [#uses=1] + %bothcond6 = or i1 %tmp40, %tmp49 ; [#uses=1] + %tmp58 = icmp eq %struct.tree_node* %tmp22, %tmp57 ; [#uses=1] + %bothcond7 = or i1 %bothcond6, %tmp58 ; [#uses=1] + %tmp67 = icmp eq %struct.tree_node* %tmp22, %tmp66 ; [#uses=1] + %bothcond8 = or i1 %bothcond7, %tmp67 ; [#uses=1] + %tmp76 = icmp eq %struct.tree_node* %tmp22, %tmp75 ; [#uses=1] + %bothcond9 = or i1 %bothcond8, %tmp76 ; [#uses=2] + %brmerge = or i1 %bothcond9, %tmp.upgrd.6 ; [#uses=1] + %bothcond9.upgrd.3 = zext i1 %bothcond9 to i32 ; [#uses=1] + %.mux = xor i32 %bothcond9.upgrd.3, 1 ; [#uses=1] + br i1 %brmerge, label %return, label %cond_true92 cond_next84: ; preds = %cond_next28 - br bool %tmp, label %return, label %cond_true92 + br i1 %tmp.upgrd.6, label %return, label %cond_true92 cond_true92.preheader: ; preds = %entry - %tmp7 = load %struct.tree_node** %void_type_node ; <%struct.tree_node*> [#uses=1] - %tmp23 = load %struct.tree_node** %float_type_node ; <%struct.tree_node*> [#uses=1] - %tmp39 = load %struct.tree_node** %char_type_node ; <%struct.tree_node*> [#uses=1] - %tmp48 = load %struct.tree_node** %signed_char_type_node ; <%struct.tree_node*> [#uses=1] - %tmp57 = load %struct.tree_node** %unsigned_char_type_node ; <%struct.tree_node*> [#uses=1] - %tmp66 = load %struct.tree_node** %short_integer_type_node ; <%struct.tree_node*> [#uses=1] - %tmp75 = load %struct.tree_node** %short_unsigned_type_node ; <%struct.tree_node*> [#uses=1] + %tmp7 = load %struct.tree_node** @void_type_node ; <%struct.tree_node*> [#uses=1] + %tmp23 = load %struct.tree_node** @float_type_node ; <%struct.tree_node*> [#uses=1] + %tmp39 = load %struct.tree_node** @char_type_node ; <%struct.tree_node*> [#uses=1] + %tmp48 = load %struct.tree_node** @signed_char_type_node ; <%struct.tree_node*> [#uses=1] + %tmp57 = load %struct.tree_node** @unsigned_char_type_node ; <%struct.tree_node*> [#uses=1] + %tmp66 = load %struct.tree_node** @short_integer_type_node ; <%struct.tree_node*> [#uses=1] + %tmp75 = load %struct.tree_node** @short_unsigned_type_node ; <%struct.tree_node*> [#uses=1] br label %cond_true92 cond_true92: ; preds = %cond_true92.preheader, %cond_next84, %cond_true34 %t.0.0 = phi %struct.tree_node* [ %parms, %cond_true92.preheader ], [ %tmp6, %cond_true34 ], [ %tmp6, %cond_next84 ] ; <%struct.tree_node*> [#uses=2] - %tmp = cast %struct.tree_node* %t.0.0 to %struct.tree_list* ; <%struct.tree_list*> [#uses=1] - %tmp = getelementptr %struct.tree_list* %tmp, int 0, uint 2 ; <%struct.tree_node**> [#uses=1] - %tmp2 = load %struct.tree_node** %tmp ; <%struct.tree_node*> [#uses=5] - %tmp4 = cast %struct.tree_node* %t.0.0 to %struct.tree_common* ; <%struct.tree_common*> [#uses=1] - %tmp5 = getelementptr %struct.tree_common* %tmp4, int 0, uint 0 ; <%struct.tree_node**> [#uses=1] + %tmp.upgrd.4 = bitcast %struct.tree_node* %t.0.0 to %struct.tree_list* ; <%struct.tree_list*> [#uses=1] + %tmp.upgrd.5 = getelementptr %struct.tree_list* %tmp.upgrd.4, i32 0, i32 2 ; <%struct.tree_node**> [#uses=1] + %tmp2 = load %struct.tree_node** %tmp.upgrd.5 ; <%struct.tree_node*> [#uses=5] + %tmp4 = bitcast %struct.tree_node* %t.0.0 to %struct.tree_common* ; <%struct.tree_common*> [#uses=1] + %tmp5 = getelementptr %struct.tree_common* %tmp4, i32 0, i32 0 ; <%struct.tree_node**> [#uses=1] %tmp6 = load %struct.tree_node** %tmp5 ; <%struct.tree_node*> [#uses=3] - %tmp = seteq %struct.tree_node* %tmp6, null ; [#uses=3] - br bool %tmp, label %cond_true, label %cond_next12 + %tmp.upgrd.6 = icmp eq %struct.tree_node* %tmp6, null ; [#uses=3] + br i1 %tmp.upgrd.6, label %cond_true, label %cond_next12 return: ; preds = %cond_next84, %cond_true34, %cond_next18, %cond_next12, %cond_true, %entry - %retval.0 = phi int [ 1, %entry ], [ 1, %cond_next84 ], [ %.mux, %cond_true34 ], [ 0, %cond_next18 ], [ 0, %cond_next12 ], [ 0, %cond_true ] ; [#uses=1] - ret int %retval.0 + %retval.0 = phi i32 [ 1, %entry ], [ 1, %cond_next84 ], [ %.mux, %cond_true34 ], [ 0, %cond_next18 ], [ 0, %cond_next12 ], [ 0, %cond_true ] ; [#uses=1] + ret i32 %retval.0 } diff --git a/test/CodeGen/Generic/2006-03-27-DebugInfoNULLDeclare.ll b/test/CodeGen/Generic/2006-03-27-DebugInfoNULLDeclare.ll index 4e262f8..2f2fb8b 100644 --- a/test/CodeGen/Generic/2006-03-27-DebugInfoNULLDeclare.ll +++ b/test/CodeGen/Generic/2006-03-27-DebugInfoNULLDeclare.ll @@ -1,10 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -implementation ; Functions: +declare void @llvm.dbg.declare({ }*, { }*) -declare void %llvm.dbg.declare({ }*, { }*) - -void %foo() { - call void %llvm.dbg.declare( { }* null, { }* null ) - ret void +define void @foo() { + call void @llvm.dbg.declare( { }* null, { }* null ) + ret void } + diff --git a/test/CodeGen/Generic/2006-04-11-vecload.ll b/test/CodeGen/Generic/2006-04-11-vecload.ll index 056edac..cc96d8f 100644 --- a/test/CodeGen/Generic/2006-04-11-vecload.ll +++ b/test/CodeGen/Generic/2006-04-11-vecload.ll @@ -1,11 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mcpu=yonah +; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah ; The vload was getting memoized to the previous scalar load! -void %VertexProgram2() { +define void @VertexProgram2() { %xFloat0.688 = load float* null ; [#uses=0] %loadVector37.712 = load <4 x float>* null ; <<4 x float>> [#uses=1] - %inFloat3.713 = insertelement <4 x float> %loadVector37.712, float 0.000000e+00, uint 3 ; <<4 x float>> [#uses=1] + %inFloat3.713 = insertelement <4 x float> %loadVector37.712, float 0.000000e+00, i32 3 ; <<4 x float>> [#uses=1] store <4 x float> %inFloat3.713, <4 x float>* null unreachable } diff --git a/test/CodeGen/Generic/2006-04-26-SetCCAnd.ll b/test/CodeGen/Generic/2006-04-26-SetCCAnd.ll index 2a424be..b99aa98 100644 --- a/test/CodeGen/Generic/2006-04-26-SetCCAnd.ll +++ b/test/CodeGen/Generic/2006-04-26-SetCCAnd.ll @@ -1,36 +1,33 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ; PR748 +@G = external global i16 ; [#uses=1] -%G = external global ushort ; [#uses=1] - -implementation ; Functions: - -void %OmNewObjHdr() { +define void @OmNewObjHdr() { entry: - br bool false, label %endif.4, label %then.0 + br i1 false, label %endif.4, label %then.0 then.0: ; preds = %entry ret void endif.4: ; preds = %entry - br bool false, label %else.3, label %shortcirc_next.3 + br i1 false, label %else.3, label %shortcirc_next.3 shortcirc_next.3: ; preds = %endif.4 ret void else.3: ; preds = %endif.4 - switch int 0, label %endif.10 [ - int 5001, label %then.10 - int -5008, label %then.10 + switch i32 0, label %endif.10 [ + i32 5001, label %then.10 + i32 -5008, label %then.10 ] then.10: ; preds = %else.3, %else.3 - %tmp.112 = load ushort* null ; [#uses=2] - %tmp.113 = load ushort* %G ; [#uses=2] - %tmp.114 = setgt ushort %tmp.112, %tmp.113 ; [#uses=1] - %tmp.120 = setlt ushort %tmp.112, %tmp.113 ; [#uses=1] - %bothcond = and bool %tmp.114, %tmp.120 ; [#uses=1] - br bool %bothcond, label %else.4, label %then.11 + %tmp.112 = load i16* null ; [#uses=2] + %tmp.113 = load i16* @G ; [#uses=2] + %tmp.114 = icmp ugt i16 %tmp.112, %tmp.113 ; [#uses=1] + %tmp.120 = icmp ult i16 %tmp.112, %tmp.113 ; [#uses=1] + %bothcond = and i1 %tmp.114, %tmp.120 ; [#uses=1] + br i1 %bothcond, label %else.4, label %then.11 then.11: ; preds = %then.10 ret void diff --git a/test/CodeGen/Generic/2006-04-28-Sign-extend-bool.ll b/test/CodeGen/Generic/2006-04-28-Sign-extend-bool.ll index 068d680..6b9bf11 100644 --- a/test/CodeGen/Generic/2006-04-28-Sign-extend-bool.ll +++ b/test/CodeGen/Generic/2006-04-28-Sign-extend-bool.ll @@ -1,10 +1,9 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -int %test(int %tmp93) { - %tmp98 = shl int %tmp93, ubyte 31 ; [#uses=1] - %tmp99 = shr int %tmp98, ubyte 31 ; [#uses=1] - %tmp99 = cast int %tmp99 to sbyte ; [#uses=1] - %tmp99100 = cast sbyte %tmp99 to int ; [#uses=1] - ret int %tmp99100 +define i32 @test(i32 %tmp93) { + %tmp98 = shl i32 %tmp93, 31 ; [#uses=1] + %tmp99 = ashr i32 %tmp98, 31 ; [#uses=1] + %tmp99.upgrd.1 = trunc i32 %tmp99 to i8 ; [#uses=1] + %tmp99100 = sext i8 %tmp99.upgrd.1 to i32 ; [#uses=1] + ret i32 %tmp99100 } - diff --git a/test/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll b/test/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll index ac7e19d..59ed295 100644 --- a/test/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll +++ b/test/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll @@ -1,33 +1,29 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc +%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.SYMBOL_TABLE_ENTRY = type { [9 x i8], [9 x i8], i32, i32, i32, %struct.SYMBOL_TABLE_ENTRY* } + %struct.__sFILEX = type opaque + %struct.__sbuf = type { i8*, i32 } +@str14 = external global [6 x i8] ; <[6 x i8]*> [#uses=0] - %struct.FILE = type { ubyte*, int, int, short, short, %struct.__sbuf, int, sbyte*, int (sbyte*)*, int (sbyte*, sbyte*, int)*, long (sbyte*, long, int)*, int (sbyte*, sbyte*, int)*, %struct.__sbuf, %struct.__sFILEX*, int, [3 x ubyte], [1 x ubyte], %struct.__sbuf, int, long } - %struct.SYMBOL_TABLE_ENTRY = type { [9 x sbyte], [9 x sbyte], int, int, uint, %struct.SYMBOL_TABLE_ENTRY* } - %struct.__sFILEX = type opaque - %struct.__sbuf = type { ubyte*, int } -%str14 = external global [6 x sbyte] ; <[6 x sbyte]*> [#uses=0] +declare void @fprintf(i32, ...) -implementation ; Functions: - -declare void %fprintf(int, ...) - -void %OUTPUT_TABLE(%struct.SYMBOL_TABLE_ENTRY* %SYM_TAB) { +define void @OUTPUT_TABLE(%struct.SYMBOL_TABLE_ENTRY* %SYM_TAB) { entry: - %tmp11 = getelementptr %struct.SYMBOL_TABLE_ENTRY* %SYM_TAB, int 0, uint 1, int 0 ; [#uses=2] - %tmp.i = cast sbyte* %tmp11 to ubyte* ; [#uses=1] - br label %bb.i + %tmp11 = getelementptr %struct.SYMBOL_TABLE_ENTRY* %SYM_TAB, i32 0, i32 1, i32 0 ; [#uses=2] + %tmp.i = bitcast i8* %tmp11 to i8* ; [#uses=1] + br label %bb.i -bb.i: ; preds = %cond_next.i, %entry - %s1.0.i = phi ubyte* [ %tmp.i, %entry ], [ null, %cond_next.i ] ; [#uses=0] - br bool false, label %cond_true.i31, label %cond_next.i +bb.i: ; preds = %cond_next.i, %entry + %s1.0.i = phi i8* [ %tmp.i, %entry ], [ null, %cond_next.i ] ; [#uses=0] + br i1 false, label %cond_true.i31, label %cond_next.i -cond_true.i31: ; preds = %bb.i - call void (int, ...)* %fprintf( int 0, sbyte* %tmp11, sbyte* null ) - ret void +cond_true.i31: ; preds = %bb.i + call void (i32, ...)* @fprintf( i32 0, i8* %tmp11, i8* null ) + ret void -cond_next.i: ; preds = %bb.i - br bool false, label %bb.i, label %bb19.i +cond_next.i: ; preds = %bb.i + br i1 false, label %bb.i, label %bb19.i -bb19.i: ; preds = %cond_next.i - ret void +bb19.i: ; preds = %cond_next.i + ret void } - diff --git a/test/CodeGen/Generic/2006-06-12-LowerSwitchCrash.ll b/test/CodeGen/Generic/2006-06-12-LowerSwitchCrash.ll index 0cf2e93..47ee7c5 100644 --- a/test/CodeGen/Generic/2006-06-12-LowerSwitchCrash.ll +++ b/test/CodeGen/Generic/2006-06-12-LowerSwitchCrash.ll @@ -1,10 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -fast +; RUN: llvm-as < %s | llc -fast -float %test(uint %tmp12771278) { - switch uint %tmp12771278, label %bb1279 [ +define float @test(i32 %tmp12771278) { + switch i32 %tmp12771278, label %bb1279 [ ] -bb1279: ; preds = %cond_next1272 - ret float 1.0 +bb1279: ; preds = %0 + ret float 1.000000e+00 } diff --git a/test/CodeGen/Generic/2006-06-13-ComputeMaskedBitsCrash.ll b/test/CodeGen/Generic/2006-06-13-ComputeMaskedBitsCrash.ll index a910b58..920cf3c 100644 --- a/test/CodeGen/Generic/2006-06-13-ComputeMaskedBitsCrash.ll +++ b/test/CodeGen/Generic/2006-06-13-ComputeMaskedBitsCrash.ll @@ -1,35 +1,33 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -fast +; RUN: llvm-as < %s | llc -fast + +%struct.cl_perfunc_opts = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32 } +@cl_pf_opts = external global %struct.cl_perfunc_opts ; <%struct.cl_perfunc_opts*> [#uses=2] - %struct.cl_perfunc_opts = type { ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, int, int, int, int, int, int, int } -%cl_pf_opts = external global %struct.cl_perfunc_opts ; <%struct.cl_perfunc_opts*> [#uses=2] - -implementation ; Functions: - -void %set_flags_from_O() { +define void @set_flags_from_O() { entry: - %tmp22 = setgt int 0, 0 ; [#uses=1] - br bool %tmp22, label %cond_true23, label %cond_next159 + %tmp22 = icmp sgt i32 0, 0 ; [#uses=1] + br i1 %tmp22, label %cond_true23, label %cond_next159 cond_true23: ; preds = %entry - %tmp138 = getelementptr %struct.cl_perfunc_opts* %cl_pf_opts, int 0, uint 8 ; [#uses=1] - %tmp138 = cast ubyte* %tmp138 to uint* ; [#uses=2] - %tmp139 = load uint* %tmp138 ; [#uses=1] - %tmp140 = shl uint 1, ubyte 27 ; [#uses=1] - %tmp141 = and uint %tmp140, 134217728 ; [#uses=1] - %tmp142 = and uint %tmp139, 4160749567 ; [#uses=1] - %tmp143 = or uint %tmp142, %tmp141 ; [#uses=1] - store uint %tmp143, uint* %tmp138 - %tmp144 = getelementptr %struct.cl_perfunc_opts* %cl_pf_opts, int 0, uint 8 ; [#uses=1] - %tmp144 = cast ubyte* %tmp144 to uint* ; [#uses=1] - %tmp145 = load uint* %tmp144 ; [#uses=1] - %tmp146 = shl uint %tmp145, ubyte 22 ; [#uses=1] - %tmp147 = shr uint %tmp146, ubyte 31 ; [#uses=1] - %tmp147 = cast uint %tmp147 to ubyte ; [#uses=1] - %tmp148 = seteq ubyte %tmp147, 0 ; [#uses=1] - br bool %tmp148, label %cond_true149, label %cond_next159 + %tmp138 = getelementptr %struct.cl_perfunc_opts* @cl_pf_opts, i32 0, i32 8 ; [#uses=1] + %tmp138.upgrd.1 = bitcast i8* %tmp138 to i32* ; [#uses=2] + %tmp139 = load i32* %tmp138.upgrd.1 ; [#uses=1] + %tmp140 = shl i32 1, 27 ; [#uses=1] + %tmp141 = and i32 %tmp140, 134217728 ; [#uses=1] + %tmp142 = and i32 %tmp139, -134217729 ; [#uses=1] + %tmp143 = or i32 %tmp142, %tmp141 ; [#uses=1] + store i32 %tmp143, i32* %tmp138.upgrd.1 + %tmp144 = getelementptr %struct.cl_perfunc_opts* @cl_pf_opts, i32 0, i32 8 ; [#uses=1] + %tmp144.upgrd.2 = bitcast i8* %tmp144 to i32* ; [#uses=1] + %tmp145 = load i32* %tmp144.upgrd.2 ; [#uses=1] + %tmp146 = shl i32 %tmp145, 22 ; [#uses=1] + %tmp147 = lshr i32 %tmp146, 31 ; [#uses=1] + %tmp147.upgrd.3 = trunc i32 %tmp147 to i8 ; [#uses=1] + %tmp148 = icmp eq i8 %tmp147.upgrd.3, 0 ; [#uses=1] + br i1 %tmp148, label %cond_true149, label %cond_next159 cond_true149: ; preds = %cond_true23 - %tmp150 = cast ubyte* null to uint* ; [#uses=0] + %tmp150 = bitcast i8* null to i32* ; [#uses=0] ret void cond_next159: ; preds = %cond_true23, %entry diff --git a/test/CodeGen/Generic/2006-06-28-SimplifySetCCCrash.ll b/test/CodeGen/Generic/2006-06-28-SimplifySetCCCrash.ll index 1fe13f8..8e8f186 100644 --- a/test/CodeGen/Generic/2006-06-28-SimplifySetCCCrash.ll +++ b/test/CodeGen/Generic/2006-06-28-SimplifySetCCCrash.ll @@ -1,135 +1,133 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc - %struct.rtunion = type { long } - %struct.rtx_def = type { ushort, ubyte, ubyte, [1 x %struct.rtunion] } -%ix86_cpu = external global uint ; [#uses=1] -%which_alternative = external global int ; [#uses=3] +; RUN: llvm-as < %s | llc +%struct.rtunion = type { i64 } + %struct.rtx_def = type { i16, i8, i8, [1 x %struct.rtunion] } +@ix86_cpu = external global i32 ; [#uses=1] +@which_alternative = external global i32 ; [#uses=3] -implementation ; Functions: +declare fastcc i32 @recog() -declare fastcc int %recog() - -void %athlon_fp_unit_ready_cost() { +define void @athlon_fp_unit_ready_cost() { entry: - %tmp = setlt int 0, 0 ; [#uses=1] - br bool %tmp, label %cond_true.i, label %cond_true + %tmp = icmp slt i32 0, 0 ; [#uses=1] + br i1 %tmp, label %cond_true.i, label %cond_true cond_true: ; preds = %entry ret void cond_true.i: ; preds = %entry - %tmp8.i = tail call fastcc int %recog( ) ; [#uses=1] - switch int %tmp8.i, label %UnifiedReturnBlock [ - int -1, label %bb2063 - int 19, label %bb2035 - int 20, label %bb2035 - int 21, label %bb2035 - int 23, label %bb2035 - int 24, label %bb2035 - int 27, label %bb2035 - int 32, label %bb2035 - int 33, label %bb1994 - int 35, label %bb2035 - int 36, label %bb1994 - int 90, label %bb1948 - int 94, label %bb1948 - int 95, label %bb1948 - int 101, label %bb1648 - int 102, label %bb1648 - int 103, label %bb1648 - int 104, label %bb1648 - int 133, label %bb1419 - int 135, label %bb1238 - int 136, label %bb1238 - int 137, label %bb1238 - int 138, label %bb1238 - int 139, label %bb1201 - int 140, label %bb1201 - int 141, label %bb1154 - int 142, label %bb1126 - int 144, label %bb1201 - int 145, label %bb1126 - int 146, label %bb1201 - int 147, label %bb1126 - int 148, label %bb1201 - int 149, label %bb1126 - int 150, label %bb1201 - int 151, label %bb1126 - int 152, label %bb1096 - int 153, label %bb1096 - int 154, label %bb1096 - int 157, label %bb1096 - int 158, label %bb1096 - int 159, label %bb1096 - int 162, label %bb1096 - int 163, label %bb1096 - int 164, label %bb1096 - int 167, label %bb1201 - int 168, label %bb1201 - int 170, label %bb1201 - int 171, label %bb1201 - int 173, label %bb1201 - int 174, label %bb1201 - int 176, label %bb1201 - int 177, label %bb1201 - int 179, label %bb993 - int 180, label %bb993 - int 181, label %bb993 - int 182, label %bb993 - int 183, label %bb993 - int 184, label %bb993 - int 365, label %bb1126 - int 366, label %bb1126 - int 367, label %bb1126 - int 368, label %bb1126 - int 369, label %bb1126 - int 370, label %bb1126 - int 371, label %bb1126 - int 372, label %bb1126 - int 373, label %bb1126 - int 384, label %bb1126 - int 385, label %bb1126 - int 386, label %bb1126 - int 387, label %bb1126 - int 388, label %bb1126 - int 389, label %bb1126 - int 390, label %bb1126 - int 391, label %bb1126 - int 392, label %bb1126 - int 525, label %bb919 - int 526, label %bb839 - int 528, label %bb919 - int 529, label %bb839 - int 531, label %cond_next6.i119 - int 532, label %cond_next6.i97 - int 533, label %cond_next6.i81 - int 534, label %bb495 - int 536, label %cond_next6.i81 - int 537, label %cond_next6.i81 - int 538, label %bb396 - int 539, label %bb288 - int 541, label %bb396 - int 542, label %bb396 - int 543, label %bb396 - int 544, label %bb396 - int 545, label %bb189 - int 546, label %cond_next6.i - int 547, label %bb189 - int 548, label %cond_next6.i - int 549, label %bb189 - int 550, label %cond_next6.i - int 551, label %bb189 - int 552, label %cond_next6.i - int 553, label %bb189 - int 554, label %cond_next6.i - int 555, label %bb189 - int 556, label %cond_next6.i - int 557, label %bb189 - int 558, label %cond_next6.i - int 618, label %bb40 - int 619, label %bb18 - int 620, label %bb40 - int 621, label %bb10 - int 622, label %bb10 + %tmp8.i = tail call fastcc i32 @recog( ) ; [#uses=1] + switch i32 %tmp8.i, label %UnifiedReturnBlock [ + i32 -1, label %bb2063 + i32 19, label %bb2035 + i32 20, label %bb2035 + i32 21, label %bb2035 + i32 23, label %bb2035 + i32 24, label %bb2035 + i32 27, label %bb2035 + i32 32, label %bb2035 + i32 33, label %bb1994 + i32 35, label %bb2035 + i32 36, label %bb1994 + i32 90, label %bb1948 + i32 94, label %bb1948 + i32 95, label %bb1948 + i32 101, label %bb1648 + i32 102, label %bb1648 + i32 103, label %bb1648 + i32 104, label %bb1648 + i32 133, label %bb1419 + i32 135, label %bb1238 + i32 136, label %bb1238 + i32 137, label %bb1238 + i32 138, label %bb1238 + i32 139, label %bb1201 + i32 140, label %bb1201 + i32 141, label %bb1154 + i32 142, label %bb1126 + i32 144, label %bb1201 + i32 145, label %bb1126 + i32 146, label %bb1201 + i32 147, label %bb1126 + i32 148, label %bb1201 + i32 149, label %bb1126 + i32 150, label %bb1201 + i32 151, label %bb1126 + i32 152, label %bb1096 + i32 153, label %bb1096 + i32 154, label %bb1096 + i32 157, label %bb1096 + i32 158, label %bb1096 + i32 159, label %bb1096 + i32 162, label %bb1096 + i32 163, label %bb1096 + i32 164, label %bb1096 + i32 167, label %bb1201 + i32 168, label %bb1201 + i32 170, label %bb1201 + i32 171, label %bb1201 + i32 173, label %bb1201 + i32 174, label %bb1201 + i32 176, label %bb1201 + i32 177, label %bb1201 + i32 179, label %bb993 + i32 180, label %bb993 + i32 181, label %bb993 + i32 182, label %bb993 + i32 183, label %bb993 + i32 184, label %bb993 + i32 365, label %bb1126 + i32 366, label %bb1126 + i32 367, label %bb1126 + i32 368, label %bb1126 + i32 369, label %bb1126 + i32 370, label %bb1126 + i32 371, label %bb1126 + i32 372, label %bb1126 + i32 373, label %bb1126 + i32 384, label %bb1126 + i32 385, label %bb1126 + i32 386, label %bb1126 + i32 387, label %bb1126 + i32 388, label %bb1126 + i32 389, label %bb1126 + i32 390, label %bb1126 + i32 391, label %bb1126 + i32 392, label %bb1126 + i32 525, label %bb919 + i32 526, label %bb839 + i32 528, label %bb919 + i32 529, label %bb839 + i32 531, label %cond_next6.i119 + i32 532, label %cond_next6.i97 + i32 533, label %cond_next6.i81 + i32 534, label %bb495 + i32 536, label %cond_next6.i81 + i32 537, label %cond_next6.i81 + i32 538, label %bb396 + i32 539, label %bb288 + i32 541, label %bb396 + i32 542, label %bb396 + i32 543, label %bb396 + i32 544, label %bb396 + i32 545, label %bb189 + i32 546, label %cond_next6.i + i32 547, label %bb189 + i32 548, label %cond_next6.i + i32 549, label %bb189 + i32 550, label %cond_next6.i + i32 551, label %bb189 + i32 552, label %cond_next6.i + i32 553, label %bb189 + i32 554, label %cond_next6.i + i32 555, label %bb189 + i32 556, label %cond_next6.i + i32 557, label %bb189 + i32 558, label %cond_next6.i + i32 618, label %bb40 + i32 619, label %bb18 + i32 620, label %bb40 + i32 621, label %bb10 + i32 622, label %bb10 ] bb10: ; preds = %cond_true.i, %cond_true.i @@ -163,20 +161,20 @@ cond_next6.i97: ; preds = %cond_true.i ret void cond_next6.i119: ; preds = %cond_true.i - %tmp.i126 = seteq ushort 0, 78 ; [#uses=1] - br bool %tmp.i126, label %cond_next778, label %bb802 + %tmp.i126 = icmp eq i16 0, 78 ; [#uses=1] + br i1 %tmp.i126, label %cond_next778, label %bb802 cond_next778: ; preds = %cond_next6.i119 - %tmp781 = seteq uint 0, 1 ; [#uses=1] - br bool %tmp781, label %cond_next784, label %bb790 + %tmp781 = icmp eq i32 0, 1 ; [#uses=1] + br i1 %tmp781, label %cond_next784, label %bb790 cond_next784: ; preds = %cond_next778 - %tmp785 = load uint* %ix86_cpu ; [#uses=1] - %tmp786 = seteq uint %tmp785, 5 ; [#uses=1] - br bool %tmp786, label %UnifiedReturnBlock, label %bb790 + %tmp785 = load i32* @ix86_cpu ; [#uses=1] + %tmp786 = icmp eq i32 %tmp785, 5 ; [#uses=1] + br i1 %tmp786, label %UnifiedReturnBlock, label %bb790 bb790: ; preds = %cond_next784, %cond_next778 - %tmp793 = seteq uint 0, 1 ; [#uses=0] + %tmp793 = icmp eq i32 0, 1 ; [#uses=0] ret void bb802: ; preds = %cond_next6.i119 @@ -210,51 +208,51 @@ bb1419: ; preds = %cond_true.i ret void bb1648: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i - %tmp1650 = load int* %which_alternative ; [#uses=1] - switch int %tmp1650, label %bb1701 [ - int 0, label %cond_next1675 - int 1, label %cond_next1675 - int 2, label %cond_next1675 + %tmp1650 = load i32* @which_alternative ; [#uses=1] + switch i32 %tmp1650, label %bb1701 [ + i32 0, label %cond_next1675 + i32 1, label %cond_next1675 + i32 2, label %cond_next1675 ] cond_next1675: ; preds = %bb1648, %bb1648, %bb1648 ret void bb1701: ; preds = %bb1648 - %tmp1702 = load int* %which_alternative ; [#uses=1] - switch int %tmp1702, label %bb1808 [ - int 0, label %cond_next1727 - int 1, label %cond_next1727 - int 2, label %cond_next1727 + %tmp1702 = load i32* @which_alternative ; [#uses=1] + switch i32 %tmp1702, label %bb1808 [ + i32 0, label %cond_next1727 + i32 1, label %cond_next1727 + i32 2, label %cond_next1727 ] cond_next1727: ; preds = %bb1701, %bb1701, %bb1701 ret void bb1808: ; preds = %bb1701 - %bothcond696 = or bool false, false ; [#uses=1] - br bool %bothcond696, label %bb1876, label %cond_next1834 + %bothcond696 = or i1 false, false ; [#uses=1] + br i1 %bothcond696, label %bb1876, label %cond_next1834 cond_next1834: ; preds = %bb1808 ret void bb1876: ; preds = %bb1808 - %tmp1877signed = load int* %which_alternative ; [#uses=4] - %tmp1877 = cast int %tmp1877signed to uint ; [#uses=1] - %bothcond699 = setlt uint %tmp1877, 2 ; [#uses=1] - %tmp1888 = seteq int %tmp1877signed, 2 ; [#uses=1] - %bothcond700 = or bool %bothcond699, %tmp1888 ; [#uses=1] - %bothcond700.not = xor bool %bothcond700, true ; [#uses=1] - %tmp1894 = seteq int %tmp1877signed, 3 ; [#uses=1] - %bothcond701 = or bool %tmp1894, %bothcond700.not ; [#uses=1] - %bothcond702 = or bool %bothcond701, false ; [#uses=1] - br bool %bothcond702, label %UnifiedReturnBlock, label %cond_next1902 + %tmp1877signed = load i32* @which_alternative ; [#uses=4] + %tmp1877 = bitcast i32 %tmp1877signed to i32 ; [#uses=1] + %bothcond699 = icmp ult i32 %tmp1877, 2 ; [#uses=1] + %tmp1888 = icmp eq i32 %tmp1877signed, 2 ; [#uses=1] + %bothcond700 = or i1 %bothcond699, %tmp1888 ; [#uses=1] + %bothcond700.not = xor i1 %bothcond700, true ; [#uses=1] + %tmp1894 = icmp eq i32 %tmp1877signed, 3 ; [#uses=1] + %bothcond701 = or i1 %tmp1894, %bothcond700.not ; [#uses=1] + %bothcond702 = or i1 %bothcond701, false ; [#uses=1] + br i1 %bothcond702, label %UnifiedReturnBlock, label %cond_next1902 cond_next1902: ; preds = %bb1876 - switch int %tmp1877signed, label %cond_next1937 [ - int 0, label %bb1918 - int 1, label %bb1918 - int 2, label %bb1918 + switch i32 %tmp1877signed, label %cond_next1937 [ + i32 0, label %bb1918 + i32 1, label %bb1918 + i32 2, label %bb1918 ] bb1918: ; preds = %cond_next1902, %cond_next1902, %cond_next1902 @@ -276,6 +274,6 @@ bb2063: ; preds = %cond_true.i ret void UnifiedReturnBlock: ; preds = %bb1876, %cond_next784, %cond_true.i - %UnifiedRetVal = phi int [ 100, %bb1876 ], [ 100, %cond_true.i ], [ 4, %cond_next784 ] ; [#uses=0] + %UnifiedRetVal = phi i32 [ 100, %bb1876 ], [ 100, %cond_true.i ], [ 4, %cond_next784 ] ; [#uses=0] ret void } diff --git a/test/CodeGen/Generic/2006-07-03-schedulers.ll b/test/CodeGen/Generic/2006-07-03-schedulers.ll index 981276b..1e423f8 100644 --- a/test/CodeGen/Generic/2006-07-03-schedulers.ll +++ b/test/CodeGen/Generic/2006-07-03-schedulers.ll @@ -1,37 +1,30 @@ -; RUN: llvm-upgrade %s | llvm-as | llc -pre-RA-sched=default -; RUN: llvm-upgrade %s | llvm-as | llc -pre-RA-sched=list-td -; RUN: llvm-upgrade %s | llvm-as | llc -pre-RA-sched=list-tdrr -; RUN: llvm-upgrade %s | llvm-as | llc -pre-RA-sched=list-burr +; RUN: llvm-as < %s | llc -pre-RA-sched=default +; RUN: llvm-as < %s | llc -pre-RA-sched=list-td +; RUN: llvm-as < %s | llc -pre-RA-sched=list-tdrr +; RUN: llvm-as < %s | llc -pre-RA-sched=list-burr ; PR859 -implementation -declare int "printf"(sbyte*, int, float) +declare i32 @printf(i8*, i32, float) - -int "testissue"(int %i, float %x, float %y) -begin +define i32 @testissue(i32 %i, float %x, float %y) { br label %bb1 -bb1: - %x1 = mul float %x, %y ;; x1 - %y1 = mul float %y, 0.75 ;; y1 - %z1 = add float %x1, %y1 ;; z1 = x1 + y1 - - %x2 = mul float %x, 0.5 ;; x2 - %y2 = mul float %y, 0x3FECCCCCC0000000 ;; y2 - %z2 = add float %x2, %y2 ;; z2 = x2 + y2 - - %z3 = add float %z1, %z2 ;; z3 = z1 + z2 - - %i1 = shl int %i, ubyte 3 ;; i1 - %j1 = add int %i, 7 ;; j1 - %m1 = add int %i1, %j1 ;; k1 = i1 + j1 -;; %m1 = div int %k1, 99 ;; m1 = k1 / 99 - - %b = setle int %m1, 6 ;; (m1 <= 6)? - br bool %b, label %bb1, label %bb2 -bb2: - %Msg = cast ulong 0 to sbyte * - call int %printf(sbyte* %Msg, int %m1, float %z3) - ret int 0 -end +bb1: ; preds = %bb1, %0 + %x1 = mul float %x, %y ; [#uses=1] + %y1 = mul float %y, 7.500000e-01 ; [#uses=1] + %z1 = add float %x1, %y1 ; [#uses=1] + %x2 = mul float %x, 5.000000e-01 ; [#uses=1] + %y2 = mul float %y, 0x3FECCCCCC0000000 ; [#uses=1] + %z2 = add float %x2, %y2 ; [#uses=1] + %z3 = add float %z1, %z2 ; [#uses=1] + %i1 = shl i32 %i, 3 ; [#uses=1] + %j1 = add i32 %i, 7 ; [#uses=1] + %m1 = add i32 %i1, %j1 ; [#uses=2] + %b = icmp sle i32 %m1, 6 ; [#uses=1] + br i1 %b, label %bb1, label %bb2 + +bb2: ; preds = %bb1 + %Msg = inttoptr i64 0 to i8* ; [#uses=1] + call i32 @printf( i8* %Msg, i32 %m1, float %z3 ) ; :1 [#uses=0] + ret i32 0 +} diff --git a/test/CodeGen/Generic/2006-08-30-CoallescerCrash.ll b/test/CodeGen/Generic/2006-08-30-CoallescerCrash.ll index 68aadc5..7f8af5d 100644 --- a/test/CodeGen/Generic/2006-08-30-CoallescerCrash.ll +++ b/test/CodeGen/Generic/2006-08-30-CoallescerCrash.ll @@ -1,115 +1,112 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc - - %struct.CUMULATIVE_ARGS = type { int, int, int, int, int, int, int, int, int, int, int, int, int, int } - %struct.VEC_edge = type { uint, uint, [1 x %struct.edge_def*] } - %struct._obstack_chunk = type { sbyte*, %struct._obstack_chunk*, [4 x sbyte] } - %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*, sbyte*, %struct.loop*, [2 x %struct.et_node*], %struct.basic_block_def*, %struct.basic_block_def*, %struct.reorder_block_def*, %struct.bb_ann_d*, long, int, int, int, int } - %struct.bb_ann_d = type { %struct.tree_node*, ubyte, %struct.edge_prediction* } - %struct.bitmap_element_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, uint, [4 x uint] } - %struct.bitmap_head_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, uint, %struct.bitmap_obstack* } +; RUN: llvm-as < %s | llc +%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._obstack_chunk = type { i8*, %struct._obstack_chunk*, [4 x i8] } + %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_obstack = type { %struct.bitmap_element_def*, %struct.bitmap_head_def*, %struct.obstack } - %struct.cost_pair = type { %struct.iv_cand*, uint, %struct.bitmap_head_def* } + %struct.cost_pair = type { %struct.iv_cand*, i32, %struct.bitmap_head_def* } %struct.dataflow_d = type { %struct.varray_head_tag*, [2 x %struct.tree_node*] } %struct.def_operand_ptr = type { %struct.tree_node** } - %struct.def_optype_d = type { uint, [1 x %struct.def_operand_ptr] } - %struct.edge_def = type { %struct.basic_block_def*, %struct.basic_block_def*, %struct.edge_def_insns, sbyte*, %struct.location_t*, int, int, long, uint } + %struct.def_optype_d = type { i32, [1 x %struct.def_operand_ptr] } + %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_prediction = type { %struct.edge_prediction*, %struct.edge_def*, uint, int } + %struct.edge_prediction = type { %struct.edge_prediction*, %struct.edge_def*, i32, i32 } %struct.eh_status = type opaque - %struct.emit_status = type { int, int, %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack*, int, %struct.location_t, int, ubyte*, %struct.rtx_def** } + %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.et_node = type opaque - %struct.expr_status = type { int, int, int, %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*, int, int, int, int, %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*, ubyte, int, long, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.varray_head_tag*, %struct.temp_slot*, int, %struct.var_refs_queue*, int, int, %struct.rtvec_def*, %struct.tree_node*, int, int, int, %struct.machine_function*, uint, uint, bool, bool, %struct.language_function*, %struct.rtx_def*, uint, int, int, int, %struct.location_t, %struct.varray_head_tag*, %struct.tree_node*, ubyte, ubyte, ubyte } - %struct.htab = type { uint (sbyte*)*, int (sbyte*, sbyte*)*, void (sbyte*)*, sbyte**, uint, uint, uint, uint, uint, sbyte* (uint, uint)*, void (sbyte*)*, sbyte*, sbyte* (sbyte*, uint, uint)*, void (sbyte*, sbyte*)*, uint } + %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.location_t, %struct.varray_head_tag*, %struct.tree_node*, i8, i8, i8 } + %struct.htab = type { i32 (i8*)*, i32 (i8*, i8*)*, void (i8*)*, i8**, i32, i32, i32, i32, i32, i8* (i32, i32)*, void (i8*)*, i8*, i8* (i8*, i32, i32)*, void (i8*, i8*)*, i32 } %struct.initial_value_struct = type opaque - %struct.iv = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, bool, bool, uint } - %struct.iv_cand = type { uint, bool, uint, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.iv*, uint } - %struct.iv_use = type { uint, uint, %struct.iv*, %struct.tree_node*, %struct.tree_node**, %struct.bitmap_head_def*, uint, %struct.cost_pair*, %struct.iv_cand* } - %struct.ivopts_data = type { %struct.loop*, %struct.htab*, uint, %struct.version_info*, %struct.bitmap_head_def*, uint, %struct.varray_head_tag*, %struct.varray_head_tag*, %struct.bitmap_head_def*, bool } + %struct.iv = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i1, i1, i32 } + %struct.iv_cand = type { i32, i1, i32, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.iv*, i32 } + %struct.iv_use = type { i32, i32, %struct.iv*, %struct.tree_node*, %struct.tree_node**, %struct.bitmap_head_def*, i32, %struct.cost_pair*, %struct.iv_cand* } + %struct.ivopts_data = type { %struct.loop*, %struct.htab*, i32, %struct.version_info*, %struct.bitmap_head_def*, i32, %struct.varray_head_tag*, %struct.varray_head_tag*, %struct.bitmap_head_def*, i1 } %struct.lang_decl = type opaque %struct.language_function = type opaque - %struct.location_t = type { sbyte*, int } - %struct.loop = type { int, %struct.basic_block_def*, %struct.basic_block_def*, %struct.basic_block_def*, %struct.lpt_decision, uint, uint, %struct.edge_def**, int, %struct.basic_block_def*, %struct.basic_block_def*, uint, %struct.edge_def**, int, %struct.edge_def**, int, %struct.simple_bitmap_def*, int, %struct.loop**, int, %struct.loop*, %struct.loop*, %struct.loop*, %struct.loop*, int, sbyte*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, int, %struct.tree_node*, %struct.tree_node*, %struct.nb_iter_bound*, %struct.edge_def*, bool } - %struct.lpt_decision = type { uint, uint } - %struct.machine_function = type { %struct.stack_local_entry*, sbyte*, %struct.rtx_def*, int, int, int, int, int } + %struct.location_t = type { i8*, i32 } + %struct.loop = type { i32, %struct.basic_block_def*, %struct.basic_block_def*, %struct.basic_block_def*, %struct.lpt_decision, i32, i32, %struct.edge_def**, i32, %struct.basic_block_def*, %struct.basic_block_def*, i32, %struct.edge_def**, i32, %struct.edge_def**, i32, %struct.simple_bitmap_def*, i32, %struct.loop**, i32, %struct.loop*, %struct.loop*, %struct.loop*, %struct.loop*, i32, i8*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, i32, %struct.tree_node*, %struct.tree_node*, %struct.nb_iter_bound*, %struct.edge_def*, i1 } + %struct.lpt_decision = type { i32, i32 } + %struct.machine_function = type { %struct.stack_local_entry*, i8*, %struct.rtx_def*, i32, i32, i32, i32, i32 } %struct.nb_iter_bound = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.nb_iter_bound* } - %struct.obstack = type { int, %struct._obstack_chunk*, sbyte*, sbyte*, sbyte*, int, int, %struct._obstack_chunk* (sbyte*, int)*, void (sbyte*, %struct._obstack_chunk*)*, sbyte*, ubyte } - %struct.reorder_block_def = type { %struct.rtx_def*, %struct.rtx_def*, %struct.basic_block_def*, %struct.basic_block_def*, %struct.basic_block_def*, int, int, int } - %struct.rtvec_def = type { int, [1 x %struct.rtx_def*] } - %struct.rtx_def = type { ushort, ubyte, ubyte, %struct.u } + %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.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.rtvec_def = type { i32, [1 x %struct.rtx_def*] } + %struct.rtx_def = type { i16, i8, i8, %struct.u } %struct.sequence_stack = type { %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack* } - %struct.simple_bitmap_def = type { uint, uint, uint, [1 x ulong] } + %struct.simple_bitmap_def = type { i32, i32, i32, [1 x i64] } %struct.stack_local_entry = type opaque - %struct.stmt_ann_d = type { %struct.tree_ann_common_d, ubyte, %struct.basic_block_def*, %struct.stmt_operands_d, %struct.dataflow_d*, %struct.bitmap_head_def*, uint } + %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.temp_slot = type opaque - %struct.tree_ann_common_d = type { uint, sbyte*, %struct.tree_node* } + %struct.tree_ann_common_d = type { i32, i8*, %struct.tree_node* } %struct.tree_ann_d = type { %struct.stmt_ann_d } - %struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_ann_d*, ubyte, ubyte, ubyte, ubyte, ubyte } - %struct.tree_decl = type { %struct.tree_common, %struct.location_t, uint, %struct.tree_node*, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, uint, %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*, int, %struct.tree_decl_u2, %struct.tree_node*, %struct.tree_node*, long, %struct.lang_decl* } - %struct.tree_decl_u1 = type { long } + %struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, %struct.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, 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_decl_u1 = type { i64 } %struct.tree_decl_u2 = type { %struct.function* } %struct.tree_node = type { %struct.tree_decl } - %struct.u = type { [1 x long] } + %struct.u = type { [1 x i64] } %struct.v_def_use_operand_type_t = type { %struct.tree_node*, %struct.tree_node* } - %struct.v_may_def_optype_d = type { uint, [1 x %struct.v_def_use_operand_type_t] } - %struct.var_refs_queue = type { %struct.rtx_def*, uint, int, %struct.var_refs_queue* } + %struct.v_may_def_optype_d = type { i32, [1 x %struct.v_def_use_operand_type_t] } + %struct.var_refs_queue = type { %struct.rtx_def*, i32, i32, %struct.var_refs_queue* } %struct.varasm_status = type opaque - %struct.varray_head_tag = type { uint, uint, uint, sbyte*, %struct.u } - %struct.version_info = type { %struct.tree_node*, %struct.iv*, bool, uint, bool } - %struct.vuse_optype_d = type { uint, [1 x %struct.tree_node*] } - -implementation ; Functions: + %struct.varray_head_tag = type { i32, i32, i32, i8*, %struct.u } + %struct.version_info = type { %struct.tree_node*, %struct.iv*, i1, i32, i1 } + %struct.vuse_optype_d = type { i32, [1 x %struct.tree_node*] } -bool %determine_use_iv_cost(%struct.ivopts_data* %data, %struct.iv_use* %use, %struct.iv_cand* %cand) { +define i1 @determine_use_iv_cost(%struct.ivopts_data* %data, %struct.iv_use* %use, %struct.iv_cand* %cand) { entry: - switch uint 0, label %bb91 [ - uint 0, label %bb - uint 1, label %bb6 - uint 3, label %cond_next135 + switch i32 0, label %bb91 [ + i32 0, label %bb + i32 1, label %bb6 + i32 3, label %cond_next135 ] bb: ; preds = %entry - ret bool false + ret i1 false bb6: ; preds = %entry - br bool false, label %bb87, label %cond_next27 + br i1 false, label %bb87, label %cond_next27 cond_next27: ; preds = %bb6 - br bool false, label %cond_true30, label %cond_next55 + br i1 false, label %cond_true30, label %cond_next55 cond_true30: ; preds = %cond_next27 - br bool false, label %cond_next41, label %cond_true35 + br i1 false, label %cond_next41, label %cond_true35 cond_true35: ; preds = %cond_true30 - ret bool false + ret i1 false cond_next41: ; preds = %cond_true30 - %tmp44 = call uint %force_var_cost( %struct.ivopts_data* %data, %struct.tree_node* null, %struct.bitmap_head_def** null ) ; [#uses=2] - %tmp46 = div uint %tmp44, 5 ; [#uses=1] - call void %set_use_iv_cost( %struct.ivopts_data* %data, %struct.iv_use* %use, %struct.iv_cand* %cand, uint %tmp46, %struct.bitmap_head_def* null ) - %tmp44.off = add uint %tmp44, 4244967296 ; [#uses=1] - %tmp52 = setgt uint %tmp44.off, 4 ; [#uses=1] - %tmp52 = cast bool %tmp52 to int ; [#uses=1] + %tmp44 = call i32 @force_var_cost( %struct.ivopts_data* %data, %struct.tree_node* null, %struct.bitmap_head_def** null ) ; [#uses=2] + %tmp46 = udiv i32 %tmp44, 5 ; [#uses=1] + call void @set_use_iv_cost( %struct.ivopts_data* %data, %struct.iv_use* %use, %struct.iv_cand* %cand, i32 %tmp46, %struct.bitmap_head_def* null ) + %tmp44.off = add i32 %tmp44, -50000000 ; [#uses=1] + %tmp52 = icmp ugt i32 %tmp44.off, 4 ; [#uses=1] + %tmp52.upgrd.1 = zext i1 %tmp52 to i32 ; [#uses=1] br label %bb87 cond_next55: ; preds = %cond_next27 - ret bool false + ret i1 false bb87: ; preds = %cond_next41, %bb6 - %tmp2.0 = phi int [ %tmp52, %cond_next41 ], [ 1, %bb6 ] ; [#uses=0] - ret bool false + %tmp2.0 = phi i32 [ %tmp52.upgrd.1, %cond_next41 ], [ 1, %bb6 ] ; [#uses=0] + ret i1 false bb91: ; preds = %entry - ret bool false + ret i1 false cond_next135: ; preds = %entry - %tmp193 = call bool %determine_use_iv_cost_generic( %struct.ivopts_data* %data, %struct.iv_use* %use, %struct.iv_cand* %cand ) ; [#uses=0] - ret bool false + %tmp193 = call i1 @determine_use_iv_cost_generic( %struct.ivopts_data* %data, %struct.iv_use* %use, %struct.iv_cand* %cand ) ; [#uses=0] + ret i1 false } -declare void %set_use_iv_cost(%struct.ivopts_data*, %struct.iv_use*, %struct.iv_cand*, uint, %struct.bitmap_head_def*) +declare void @set_use_iv_cost(%struct.ivopts_data*, %struct.iv_use*, %struct.iv_cand*, i32, %struct.bitmap_head_def*) -declare uint %force_var_cost(%struct.ivopts_data*, %struct.tree_node*, %struct.bitmap_head_def**) +declare i32 @force_var_cost(%struct.ivopts_data*, %struct.tree_node*, %struct.bitmap_head_def**) -declare bool %determine_use_iv_cost_generic(%struct.ivopts_data*, %struct.iv_use*, %struct.iv_cand*) +declare i1 @determine_use_iv_cost_generic(%struct.ivopts_data*, %struct.iv_use*, %struct.iv_cand*) diff --git a/test/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll b/test/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll index e2f07e8..c6d0dfe 100644 --- a/test/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll +++ b/test/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll @@ -1,35 +1,33 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -regalloc=local - - %struct.CHESS_POSITION = type { ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, uint, int, sbyte, sbyte, [64 x sbyte], sbyte, sbyte, sbyte, sbyte, sbyte } -%search = external global %struct.CHESS_POSITION ; <%struct.CHESS_POSITION*> [#uses=2] -%bishop_shift_rl45 = external global [64 x int] ; <[64 x int]*> [#uses=1] -%bishop_shift_rr45 = external global [64 x int] ; <[64 x int]*> [#uses=1] -%black_outpost = external global [64 x sbyte] ; <[64 x sbyte]*> [#uses=1] -%bishop_mobility_rl45 = external global [64 x [256 x int]] ; <[64 x [256 x int]]*> [#uses=1] -%bishop_mobility_rr45 = external global [64 x [256 x int]] ; <[64 x [256 x int]]*> [#uses=1] - -implementation ; Functions: - -declare fastcc int %FirstOne() - -fastcc void %Evaluate() { +; RUN: llvm-as < %s | llc -regalloc=local + +%struct.CHESS_POSITION = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i8, i8, [64 x i8], i8, i8, i8, i8, i8 } +@search = external global %struct.CHESS_POSITION ; <%struct.CHESS_POSITION*> [#uses=2] +@bishop_shift_rl45 = external global [64 x i32] ; <[64 x i32]*> [#uses=1] +@bishop_shift_rr45 = external global [64 x i32] ; <[64 x i32]*> [#uses=1] +@black_outpost = external global [64 x i8] ; <[64 x i8]*> [#uses=1] +@bishop_mobility_rl45 = external global [64 x [256 x i32]] ; <[64 x [256 x i32]]*> [#uses=1] +@bishop_mobility_rr45 = external global [64 x [256 x i32]] ; <[64 x [256 x i32]]*> [#uses=1] + +declare fastcc i32 @FirstOne() + +define fastcc void @Evaluate() { entry: - br bool false, label %cond_false186, label %cond_true + br i1 false, label %cond_false186, label %cond_true cond_true: ; preds = %entry ret void cond_false186: ; preds = %entry - br bool false, label %cond_true293, label %bb203 + br i1 false, label %cond_true293, label %bb203 bb203: ; preds = %cond_false186 ret void cond_true293: ; preds = %cond_false186 - br bool false, label %cond_true298, label %cond_next317 + br i1 false, label %cond_true298, label %cond_next317 cond_true298: ; preds = %cond_true293 - br bool false, label %cond_next518, label %cond_true397.preheader + br i1 false, label %cond_next518, label %cond_true397.preheader cond_next317: ; preds = %cond_true293 ret void @@ -38,37 +36,37 @@ cond_true397.preheader: ; preds = %cond_true298 ret void cond_next518: ; preds = %cond_true298 - br bool false, label %bb1069, label %cond_true522 + br i1 false, label %bb1069, label %cond_true522 cond_true522: ; preds = %cond_next518 ret void bb1069: ; preds = %cond_next518 - br bool false, label %cond_next1131, label %bb1096 + br i1 false, label %cond_next1131, label %bb1096 bb1096: ; preds = %bb1069 ret void cond_next1131: ; preds = %bb1069 - br bool false, label %cond_next1207, label %cond_true1150 + br i1 false, label %cond_next1207, label %cond_true1150 cond_true1150: ; preds = %cond_next1131 ret void cond_next1207: ; preds = %cond_next1131 - br bool false, label %cond_next1219, label %cond_true1211 + br i1 false, label %cond_next1219, label %cond_true1211 cond_true1211: ; preds = %cond_next1207 ret void cond_next1219: ; preds = %cond_next1207 - br bool false, label %cond_true1223, label %cond_next1283 + br i1 false, label %cond_true1223, label %cond_next1283 cond_true1223: ; preds = %cond_next1219 - br bool false, label %cond_true1254, label %cond_true1264 + br i1 false, label %cond_true1254, label %cond_true1264 cond_true1254: ; preds = %cond_true1223 - br bool false, label %bb1567, label %cond_true1369.preheader + br i1 false, label %bb1567, label %cond_true1369.preheader cond_true1264: ; preds = %cond_true1223 ret void @@ -80,36 +78,40 @@ cond_true1369.preheader: ; preds = %cond_true1254 ret void bb1567: ; preds = %cond_true1254 - %tmp1580 = load ulong* getelementptr (%struct.CHESS_POSITION* %search, int 0, uint 3) ; [#uses=1] - %tmp1591 = load ulong* getelementptr (%struct.CHESS_POSITION* %search, int 0, uint 4) ; [#uses=1] - %tmp1572 = tail call fastcc int %FirstOne( ) ; [#uses=5] - %tmp1582 = getelementptr [64 x int]* %bishop_shift_rl45, int 0, int %tmp1572 ; [#uses=1] - %tmp1583 = load int* %tmp1582 ; [#uses=1] - %tmp1583 = cast int %tmp1583 to ubyte ; [#uses=1] - %tmp1584 = shr ulong %tmp1580, ubyte %tmp1583 ; [#uses=1] - %tmp1584 = cast ulong %tmp1584 to uint ; [#uses=1] - %tmp1585 = and uint %tmp1584, 255 ; [#uses=1] - %tmp1587 = getelementptr [64 x [256 x int]]* %bishop_mobility_rl45, int 0, int %tmp1572, uint %tmp1585 ; [#uses=1] - %tmp1588 = load int* %tmp1587 ; [#uses=1] - %tmp1593 = getelementptr [64 x int]* %bishop_shift_rr45, int 0, int %tmp1572 ; [#uses=1] - %tmp1594 = load int* %tmp1593 ; [#uses=1] - %tmp1594 = cast int %tmp1594 to ubyte ; [#uses=1] - %tmp1595 = shr ulong %tmp1591, ubyte %tmp1594 ; [#uses=1] - %tmp1595 = cast ulong %tmp1595 to uint ; [#uses=1] - %tmp1596 = and uint %tmp1595, 255 ; [#uses=1] - %tmp1598 = getelementptr [64 x [256 x int]]* %bishop_mobility_rr45, int 0, int %tmp1572, uint %tmp1596 ; [#uses=1] - %tmp1599 = load int* %tmp1598 ; [#uses=1] - %tmp1600.neg = sub int 0, %tmp1588 ; [#uses=1] - %tmp1602 = sub int %tmp1600.neg, %tmp1599 ; [#uses=1] - %tmp1604 = getelementptr [64 x sbyte]* %black_outpost, int 0, int %tmp1572 ; [#uses=1] - %tmp1605 = load sbyte* %tmp1604 ; [#uses=1] - %tmp1606 = seteq sbyte %tmp1605, 0 ; [#uses=1] - br bool %tmp1606, label %cond_next1637, label %cond_true1607 + %tmp1580 = load i64* getelementptr (%struct.CHESS_POSITION* @search, i32 0, i32 3) ; [#uses=1] + %tmp1591 = load i64* getelementptr (%struct.CHESS_POSITION* @search, i32 0, i32 4) ; [#uses=1] + %tmp1572 = tail call fastcc i32 @FirstOne( ) ; [#uses=5] + %tmp1582 = getelementptr [64 x i32]* @bishop_shift_rl45, i32 0, i32 %tmp1572 ; [#uses=1] + %tmp1583 = load i32* %tmp1582 ; [#uses=1] + %tmp1583.upgrd.1 = trunc i32 %tmp1583 to i8 ; [#uses=1] + %shift.upgrd.2 = zext i8 %tmp1583.upgrd.1 to i64 ; [#uses=1] + %tmp1584 = lshr i64 %tmp1580, %shift.upgrd.2 ; [#uses=1] + %tmp1584.upgrd.3 = trunc i64 %tmp1584 to i32 ; [#uses=1] + %tmp1585 = and i32 %tmp1584.upgrd.3, 255 ; [#uses=1] + %gep.upgrd.4 = zext i32 %tmp1585 to i64 ; [#uses=1] + %tmp1587 = getelementptr [64 x [256 x i32]]* @bishop_mobility_rl45, i32 0, i32 %tmp1572, i64 %gep.upgrd.4 ; [#uses=1] + %tmp1588 = load i32* %tmp1587 ; [#uses=1] + %tmp1593 = getelementptr [64 x i32]* @bishop_shift_rr45, i32 0, i32 %tmp1572 ; [#uses=1] + %tmp1594 = load i32* %tmp1593 ; [#uses=1] + %tmp1594.upgrd.5 = trunc i32 %tmp1594 to i8 ; [#uses=1] + %shift.upgrd.6 = zext i8 %tmp1594.upgrd.5 to i64 ; [#uses=1] + %tmp1595 = lshr i64 %tmp1591, %shift.upgrd.6 ; [#uses=1] + %tmp1595.upgrd.7 = trunc i64 %tmp1595 to i32 ; [#uses=1] + %tmp1596 = and i32 %tmp1595.upgrd.7, 255 ; [#uses=1] + %gep.upgrd.8 = zext i32 %tmp1596 to i64 ; [#uses=1] + %tmp1598 = getelementptr [64 x [256 x i32]]* @bishop_mobility_rr45, i32 0, i32 %tmp1572, i64 %gep.upgrd.8 ; [#uses=1] + %tmp1599 = load i32* %tmp1598 ; [#uses=1] + %tmp1600.neg = sub i32 0, %tmp1588 ; [#uses=1] + %tmp1602 = sub i32 %tmp1600.neg, %tmp1599 ; [#uses=1] + %tmp1604 = getelementptr [64 x i8]* @black_outpost, i32 0, i32 %tmp1572 ; [#uses=1] + %tmp1605 = load i8* %tmp1604 ; [#uses=1] + %tmp1606 = icmp eq i8 %tmp1605, 0 ; [#uses=1] + br i1 %tmp1606, label %cond_next1637, label %cond_true1607 cond_true1607: ; preds = %bb1567 ret void cond_next1637: ; preds = %bb1567 - %tmp1662 = sub int %tmp1602, 0 ; [#uses=0] + %tmp1662 = sub i32 %tmp1602, 0 ; [#uses=0] ret void } diff --git a/test/CodeGen/Generic/2006-09-06-SwitchLowering.ll b/test/CodeGen/Generic/2006-09-06-SwitchLowering.ll index 2b12926..2134d33 100644 --- a/test/CodeGen/Generic/2006-09-06-SwitchLowering.ll +++ b/test/CodeGen/Generic/2006-09-06-SwitchLowering.ll @@ -1,29 +1,29 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -void %foo() { +define void @foo() { br label %cond_true813.i cond_true813.i: ; preds = %0 - br bool false, label %cond_true818.i, label %cond_next1146.i + br i1 false, label %cond_true818.i, label %cond_next1146.i cond_true818.i: ; preds = %cond_true813.i - br bool false, label %recog_memoized.exit52, label %cond_next1146.i + br i1 false, label %recog_memoized.exit52, label %cond_next1146.i recog_memoized.exit52: ; preds = %cond_true818.i - switch int 0, label %bb886.i.preheader [ - int 0, label %bb907.i - int 44, label %bb866.i - int 103, label %bb874.i - int 114, label %bb874.i + switch i32 0, label %bb886.i.preheader [ + i32 0, label %bb907.i + i32 44, label %bb866.i + i32 103, label %bb874.i + i32 114, label %bb874.i ] bb857.i: ; preds = %bb886.i, %bb866.i - %tmp862.i494.24 = phi sbyte* [ null, %bb866.i ], [ %tmp862.i494.26, %bb886.i ] ; [#uses=4] - switch int 0, label %bb886.i.preheader [ - int 0, label %bb907.i - int 44, label %bb866.i - int 103, label %bb874.i - int 114, label %bb874.i + %tmp862.i494.24 = phi i8* [ null, %bb866.i ], [ %tmp862.i494.26, %bb886.i ] ; [#uses=4] + switch i32 0, label %bb886.i.preheader [ + i32 0, label %bb907.i + i32 44, label %bb866.i + i32 103, label %bb874.i + i32 114, label %bb874.i ] bb866.i.loopexit: ; preds = %bb874.i @@ -33,18 +33,18 @@ bb866.i.loopexit31: ; preds = %cond_true903.i br label %bb866.i bb866.i: ; preds = %bb866.i.loopexit31, %bb866.i.loopexit, %bb857.i, %recog_memoized.exit52 - br bool false, label %bb907.i, label %bb857.i + br i1 false, label %bb907.i, label %bb857.i bb874.i.preheader.loopexit: ; preds = %cond_true903.i, %cond_true903.i ret void bb874.i: ; preds = %bb857.i, %bb857.i, %recog_memoized.exit52, %recog_memoized.exit52 - %tmp862.i494.25 = phi sbyte* [ %tmp862.i494.24, %bb857.i ], [ %tmp862.i494.24, %bb857.i ], [ undef, %recog_memoized.exit52 ], [ undef, %recog_memoized.exit52 ] ; [#uses=1] - switch int 0, label %bb886.i.preheader.loopexit [ - int 0, label %bb907.i - int 44, label %bb866.i.loopexit - int 103, label %bb874.i.backedge - int 114, label %bb874.i.backedge + %tmp862.i494.25 = phi i8* [ %tmp862.i494.24, %bb857.i ], [ %tmp862.i494.24, %bb857.i ], [ undef, %recog_memoized.exit52 ], [ undef, %recog_memoized.exit52 ] ; [#uses=1] + switch i32 0, label %bb886.i.preheader.loopexit [ + i32 0, label %bb907.i + i32 44, label %bb866.i.loopexit + i32 103, label %bb874.i.backedge + i32 114, label %bb874.i.backedge ] bb874.i.backedge: ; preds = %bb874.i, %bb874.i @@ -54,33 +54,33 @@ bb886.i.preheader.loopexit: ; preds = %bb874.i ret void bb886.i.preheader: ; preds = %bb857.i, %recog_memoized.exit52 - %tmp862.i494.26 = phi sbyte* [ undef, %recog_memoized.exit52 ], [ %tmp862.i494.24, %bb857.i ] ; [#uses=1] + %tmp862.i494.26 = phi i8* [ undef, %recog_memoized.exit52 ], [ %tmp862.i494.24, %bb857.i ] ; [#uses=1] br label %bb886.i bb886.i: ; preds = %cond_true903.i, %bb886.i.preheader - br bool false, label %bb857.i, label %cond_true903.i + br i1 false, label %bb857.i, label %cond_true903.i cond_true903.i: ; preds = %bb886.i - switch int 0, label %bb886.i [ - int 0, label %bb907.i - int 44, label %bb866.i.loopexit31 - int 103, label %bb874.i.preheader.loopexit - int 114, label %bb874.i.preheader.loopexit + switch i32 0, label %bb886.i [ + i32 0, label %bb907.i + i32 44, label %bb866.i.loopexit31 + i32 103, label %bb874.i.preheader.loopexit + i32 114, label %bb874.i.preheader.loopexit ] bb907.i: ; preds = %cond_true903.i, %bb874.i, %bb866.i, %bb857.i, %recog_memoized.exit52 - %tmp862.i494.0 = phi sbyte* [ %tmp862.i494.24, %bb857.i ], [ null, %bb866.i ], [ undef, %recog_memoized.exit52 ], [ %tmp862.i494.25, %bb874.i ], [ null, %cond_true903.i ] ; [#uses=1] - br bool false, label %cond_next1146.i, label %cond_true910.i + %tmp862.i494.0 = phi i8* [ %tmp862.i494.24, %bb857.i ], [ null, %bb866.i ], [ undef, %recog_memoized.exit52 ], [ %tmp862.i494.25, %bb874.i ], [ null, %cond_true903.i ] ; [#uses=1] + br i1 false, label %cond_next1146.i, label %cond_true910.i cond_true910.i: ; preds = %bb907.i ret void cond_next1146.i: ; preds = %bb907.i, %cond_true818.i, %cond_true813.i - %tmp862.i494.1 = phi sbyte* [ %tmp862.i494.0, %bb907.i ], [ undef, %cond_true818.i ], [ undef, %cond_true813.i ] ; [#uses=0] + %tmp862.i494.1 = phi i8* [ %tmp862.i494.0, %bb907.i ], [ undef, %cond_true818.i ], [ undef, %cond_true813.i ] ; [#uses=0] ret void bb2060.i: ; No predecessors! - br bool false, label %cond_true2064.i, label %bb2067.i + br i1 false, label %cond_true2064.i, label %bb2067.i cond_true2064.i: ; preds = %bb2060.i unreachable diff --git a/test/CodeGen/Generic/2006-10-27-CondFolding.ll b/test/CodeGen/Generic/2006-10-27-CondFolding.ll index 8bf3c11..b3cfb99 100644 --- a/test/CodeGen/Generic/2006-10-27-CondFolding.ll +++ b/test/CodeGen/Generic/2006-10-27-CondFolding.ll @@ -1,13 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -void %start_pass_huff(int %gather_statistics) { +define void @start_pass_huff(i32 %gather_statistics) { entry: - %tmp = seteq int %gather_statistics, 0 ; [#uses=1] - br bool false, label %cond_next22, label %bb166 + %tmp = icmp eq i32 %gather_statistics, 0 ; [#uses=1] + br i1 false, label %cond_next22, label %bb166 cond_next22: ; preds = %entry - %bothcond = and bool false, %tmp ; [#uses=1] - br bool %bothcond, label %bb34, label %bb46 + %bothcond = and i1 false, %tmp ; [#uses=1] + br i1 %bothcond, label %bb34, label %bb46 bb34: ; preds = %cond_next22 ret void diff --git a/test/CodeGen/Generic/2006-10-29-Crash.ll b/test/CodeGen/Generic/2006-10-29-Crash.ll index 8857c93..cabec54 100644 --- a/test/CodeGen/Generic/2006-10-29-Crash.ll +++ b/test/CodeGen/Generic/2006-10-29-Crash.ll @@ -1,21 +1,22 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -void %form_component_prediction(int %dy) { +define void @form_component_prediction(i32 %dy) { entry: - %tmp7 = and int %dy, 1 ; [#uses=1] - %tmp27 = seteq int %tmp7, 0 ; [#uses=1] - br bool false, label %cond_next30, label %bb115 + %tmp7 = and i32 %dy, 1 ; [#uses=1] + %tmp27 = icmp eq i32 %tmp7, 0 ; [#uses=1] + br i1 false, label %cond_next30, label %bb115 -cond_next30: ; preds = %entry - ret void +cond_next30: ; preds = %entry + ret void -bb115: ; preds = %entry - %bothcond1 = or bool %tmp27, false ; [#uses=1] - br bool %bothcond1, label %bb228, label %cond_next125 +bb115: ; preds = %entry + %bothcond1 = or i1 %tmp27, false ; [#uses=1] + br i1 %bothcond1, label %bb228, label %cond_next125 -cond_next125: ; preds = %bb115 - ret void +cond_next125: ; preds = %bb115 + ret void -bb228: ; preds = %bb115 - ret void +bb228: ; preds = %bb115 + ret void } + diff --git a/test/CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll b/test/CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll index 330bee6..a773759 100644 --- a/test/CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll +++ b/test/CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll @@ -1,11 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | not grep adc - +; RUN: llvm-as < %s | llc -march=x86 | not grep adc ; PR987 -declare void %llvm.memcpy.i64(sbyte*, sbyte*, ulong, uint) +declare void @llvm.memcpy.i64(i8*, i8*, i64, i32) -void %foo(ulong %a) { - %b = add ulong %a, 1 -call void %llvm.memcpy.i64( sbyte* null, sbyte* null, ulong %b, uint 1 ) - ret void +define void @foo(i64 %a) { + %b = add i64 %a, 1 ; [#uses=1] + call void @llvm.memcpy.i64( i8* null, i8* null, i64 %b, i32 1 ) + ret void } + diff --git a/test/CodeGen/Generic/2006-11-20-DAGCombineCrash.ll b/test/CodeGen/Generic/2006-11-20-DAGCombineCrash.ll index 6a76079..95ef53c 100644 --- a/test/CodeGen/Generic/2006-11-20-DAGCombineCrash.ll +++ b/test/CodeGen/Generic/2006-11-20-DAGCombineCrash.ll @@ -1,39 +1,36 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -; PR1011 +; RUN: llvm-as < %s | llc +; PR1011 +%struct.mng_data = type { i8* (%struct.mng_data*, i32)*, i32, i32, i32, i8, i8, i32, i32, i32, i32, i32 } - %struct.mng_data = type { sbyte* (%struct.mng_data*, uint)*, int, int, int, sbyte, sbyte, int, int, int, int, int } - -implementation ; Functions: - -void %mng_display_bgr565() { +define void @mng_display_bgr565() { entry: - br bool false, label %bb.preheader, label %return + br i1 false, label %bb.preheader, label %return bb.preheader: ; preds = %entry - br bool false, label %cond_true48, label %cond_next80 + br i1 false, label %cond_true48, label %cond_next80 cond_true48: ; preds = %bb.preheader - %tmp = load ubyte* null ; [#uses=1] - %tmp51 = cast ubyte %tmp to ushort ; [#uses=1] - %tmp99 = load sbyte* null ; [#uses=1] - %tmp54 = cast sbyte %tmp99 to ubyte ; [#uses=1] - %tmp54 = cast ubyte %tmp54 to int ; [#uses=1] - %tmp55 = lshr int %tmp54, ubyte 3 ; [#uses=1] - %tmp55 = cast int %tmp55 to ushort ; [#uses=1] - %tmp52 = shl ushort %tmp51, ubyte 5 ; [#uses=1] - %tmp56 = and ushort %tmp55, 28 ; [#uses=1] - %tmp57 = or ushort %tmp56, %tmp52 ; [#uses=1] - %tmp60 = cast ushort %tmp57 to uint ; [#uses=1] - %tmp62 = xor uint 0, 65535 ; [#uses=1] - %tmp63 = mul uint %tmp60, %tmp62 ; [#uses=1] - %tmp65 = add uint 0, %tmp63 ; [#uses=1] - %tmp69 = add uint 0, %tmp65 ; [#uses=1] - %tmp70 = lshr uint %tmp69, ubyte 16 ; [#uses=1] - %tmp70 = cast uint %tmp70 to ushort ; [#uses=1] - %tmp75 = lshr ushort %tmp70, ubyte 8 ; [#uses=1] - %tmp75 = cast ushort %tmp75 to ubyte ; [#uses=1] - %tmp76 = lshr ubyte %tmp75, ubyte 5 ; [#uses=1] - store ubyte %tmp76, ubyte* null + %tmp = load i8* null ; [#uses=1] + %tmp51 = zext i8 %tmp to i16 ; [#uses=1] + %tmp99 = load i8* null ; [#uses=1] + %tmp54 = bitcast i8 %tmp99 to i8 ; [#uses=1] + %tmp54.upgrd.1 = zext i8 %tmp54 to i32 ; [#uses=1] + %tmp55 = lshr i32 %tmp54.upgrd.1, 3 ; [#uses=1] + %tmp55.upgrd.2 = trunc i32 %tmp55 to i16 ; [#uses=1] + %tmp52 = shl i16 %tmp51, 5 ; [#uses=1] + %tmp56 = and i16 %tmp55.upgrd.2, 28 ; [#uses=1] + %tmp57 = or i16 %tmp56, %tmp52 ; [#uses=1] + %tmp60 = zext i16 %tmp57 to i32 ; [#uses=1] + %tmp62 = xor i32 0, 65535 ; [#uses=1] + %tmp63 = mul i32 %tmp60, %tmp62 ; [#uses=1] + %tmp65 = add i32 0, %tmp63 ; [#uses=1] + %tmp69 = add i32 0, %tmp65 ; [#uses=1] + %tmp70 = lshr i32 %tmp69, 16 ; [#uses=1] + %tmp70.upgrd.3 = trunc i32 %tmp70 to i16 ; [#uses=1] + %tmp75 = lshr i16 %tmp70.upgrd.3, 8 ; [#uses=1] + %tmp75.upgrd.4 = trunc i16 %tmp75 to i8 ; [#uses=1] + %tmp76 = lshr i8 %tmp75.upgrd.4, 5 ; [#uses=1] + store i8 %tmp76, i8* null ret void cond_next80: ; preds = %bb.preheader diff --git a/test/CodeGen/Generic/2006-12-16-InlineAsmCrash.ll b/test/CodeGen/Generic/2006-12-16-InlineAsmCrash.ll index e4a3906..91ac3b9 100644 --- a/test/CodeGen/Generic/2006-12-16-InlineAsmCrash.ll +++ b/test/CodeGen/Generic/2006-12-16-InlineAsmCrash.ll @@ -1,34 +1,30 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 +; RUN: llvm-as < %s | llc -march=x86 ; PR1049 target datalayout = "e-p:32:32" -target endian = little -target pointersize = 32 target triple = "i686-pc-linux-gnu" - %struct.QBasicAtomic = type { int } - %struct.QByteArray = type { "struct.QByteArray::Data"* } - "struct.QByteArray::Data" = type { %struct.QBasicAtomic, int, int, sbyte*, [1 x sbyte] } + %struct.QBasicAtomic = type { i32 } + %struct.QByteArray = type { %"struct.QByteArray::Data"* } + %"struct.QByteArray::Data" = type { %struct.QBasicAtomic, i32, i32, i8*, [1 x i8] } %struct.QFactoryLoader = type { %struct.QObject } - %struct.QImageIOHandler = type { int (...)**, %struct.QImageIOHandlerPrivate* } + %struct.QImageIOHandler = type { i32 (...)**, %struct.QImageIOHandlerPrivate* } %struct.QImageIOHandlerPrivate = type opaque %struct.QImageWriter = type { %struct.QImageWriterPrivate* } - %struct.QImageWriterPrivate = type { %struct.QByteArray, %struct.QFactoryLoader*, bool, %struct.QImageIOHandler*, int, float, %struct.QString, %struct.QString, uint, %struct.QString, %struct.QImageWriter* } - "struct.QList" = type { "struct.QList::._20" } - "struct.QList::._20" = type { %struct.QListData } - %struct.QListData = type { "struct.QListData::Data"* } - "struct.QListData::Data" = type { %struct.QBasicAtomic, int, int, int, ubyte, [1 x sbyte*] } - %struct.QObject = type { int (...)**, %struct.QObjectData* } - %struct.QObjectData = type { int (...)**, %struct.QObject*, %struct.QObject*, "struct.QList", ubyte, [3 x ubyte], int, int } - %struct.QString = type { "struct.QString::Data"* } - "struct.QString::Data" = type { %struct.QBasicAtomic, int, int, ushort*, ubyte, ubyte, [1 x ushort] } + %struct.QImageWriterPrivate = type { %struct.QByteArray, %struct.QFactoryLoader*, i1, %struct.QImageIOHandler*, i32, float, %struct.QString, %struct.QString, i32, %struct.QString, %struct.QImageWriter* } + %"struct.QList" = type { %"struct.QList::._20" } + %"struct.QList::._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", 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] } -implementation ; Functions: - -bool %_ZNK12QImageWriter8canWriteEv() { +define i1 @_ZNK12QImageWriter8canWriteEv() { %tmp62 = load %struct.QImageWriterPrivate** null ; <%struct.QImageWriterPrivate*> [#uses=1] - %tmp = getelementptr %struct.QImageWriterPrivate* %tmp62, int 0, uint 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"( int* null ) - ret bool false + %tmp = getelementptr %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* null ) + ret i1 false } -declare %struct.QString* %_ZN7QStringaSERKS_(%struct.QString*, %struct.QString*) +declare %struct.QString* @_ZN7QStringaSERKS_(%struct.QString*, %struct.QString*) diff --git a/test/CodeGen/Generic/BasicInstrs.llx b/test/CodeGen/Generic/BasicInstrs.llx index 8260609..e65cbf7 100644 --- a/test/CodeGen/Generic/BasicInstrs.llx +++ b/test/CodeGen/Generic/BasicInstrs.llx @@ -1,54 +1,54 @@ -; New testcase, this contains a bunch of simple instructions that should be +; New testcase, this contains a bunch of simple instructions that should be ; handled by a code generator. -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -int %add(int %A, int %B) { - %R = add int %A, %B - ret int %R +define i32 @add(i32 %A, i32 %B) { + %R = add i32 %A, %B ; [#uses=1] + ret i32 %R } -int %sub(int %A, int %B) { - %R = sub int %A, %B - ret int %R +define i32 @sub(i32 %A, i32 %B) { + %R = sub i32 %A, %B ; [#uses=1] + ret i32 %R } -int %mul(int %A, int %B) { - %R = mul int %A, %B - ret int %R +define i32 @mul(i32 %A, i32 %B) { + %R = mul i32 %A, %B ; [#uses=1] + ret i32 %R } -int %sdiv(int %A, int %B) { - %R = div int %A, %B - ret int %R +define i32 @sdiv(i32 %A, i32 %B) { + %R = sdiv i32 %A, %B ; [#uses=1] + ret i32 %R } -uint %udiv(uint %A, uint %B) { - %R = div uint %A, %B - ret uint %R +define i32 @udiv(i32 %A, i32 %B) { + %R = udiv i32 %A, %B ; [#uses=1] + ret i32 %R } -int %srem(int %A, int %B) { - %R = rem int %A, %B - ret int %R +define i32 @srem(i32 %A, i32 %B) { + %R = srem i32 %A, %B ; [#uses=1] + ret i32 %R } -uint %urem(uint %A, uint %B) { - %R = rem uint %A, %B - ret uint %R +define i32 @urem(i32 %A, i32 %B) { + %R = urem i32 %A, %B ; [#uses=1] + ret i32 %R } -int %and(int %A, int %B) { - %R = and int %A, %B - ret int %R +define i32 @and(i32 %A, i32 %B) { + %R = and i32 %A, %B ; [#uses=1] + ret i32 %R } -int %or(int %A, int %B) { - %R = or int %A, %B - ret int %R +define i32 @or(i32 %A, i32 %B) { + %R = or i32 %A, %B ; [#uses=1] + ret i32 %R } -int %xor(int %A, int %B) { - %R = xor int %A, %B - ret int %R +define i32 @xor(i32 %A, i32 %B) { + %R = xor i32 %A, %B ; [#uses=1] + ret i32 %R } diff --git a/test/CodeGen/Generic/BurgBadRegAlloc.ll b/test/CodeGen/Generic/BurgBadRegAlloc.ll index af74a81..3ccc9a0 100644 --- a/test/CodeGen/Generic/BurgBadRegAlloc.ll +++ b/test/CodeGen/Generic/BurgBadRegAlloc.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; Register allocation is doing a very poor job on this routine from yyparse ;; in Burg: @@ -7,12 +7,12 @@ ;; at function calls, even though there are no intervening uses. ;; -- outgoing args of some function calls have to be swapped, causing ;; another write/read from stack to do the exchange (use -dregalloc=y). -;; - %Arity = type %struct.arity* +;; +%Arity = type %struct.arity* %Binding = type %struct.binding* - %DeltaCost = type [4 x short] + %DeltaCost = type [4 x i16] %Dimension = type %struct.dimension* - %Index_Map = type { int, %Item_Set* } + %Index_Map = type { i32, %Item_Set* } %IntList = type %struct.intlist* %Item = type { %DeltaCost, %Rule } %ItemArray = type %Item* @@ -25,7 +25,7 @@ %PatternAST = type %struct.patternAST* %Plank = type %struct.plank* %PlankMap = type %struct.plankMap* - %ReadFn = type int ()* + %ReadFn = type i32 ()* %Rule = type %struct.rule* %RuleAST = type %struct.ruleAST* %StateMap = type %struct.stateMap* @@ -33,799 +33,797 @@ %Symbol = type %struct.symbol* %Table = type %struct.table* %YYSTYPE = type { %IntList } - %struct.arity = type { int, %List } - %struct.binding = type { sbyte*, int } - %struct.dimension = type { short*, %Index_Map, %Mapping, int, %PlankMap } - %struct.index_map = type { int, %Item_Set* } - %struct.intlist = type { int, %IntList } + %struct.arity = type { i32, %List } + %struct.binding = type { i8*, i32 } + %struct.dimension = type { i16*, %Index_Map, %Mapping, i32, %PlankMap } + %struct.index_map = type { i32, %Item_Set* } + %struct.intlist = type { i32, %IntList } %struct.item = type { %DeltaCost, %Rule } - %struct.item_set = type { int, int, %Operator, [2 x %Item_Set], %Item_Set, short*, %ItemArray, %ItemArray } - %struct.list = type { sbyte*, %List } - %struct.mapping = type { %List*, int, int, int, %Item_Set* } - %struct.nonterminal = type { sbyte*, int, int, int, %PlankMap, %Rule } - %struct.operator = type { sbyte*, uint, int, int, int, int, %Table } + %struct.item_set = type { i32, i32, %Operator, [2 x %Item_Set], %Item_Set, i16*, %ItemArray, %ItemArray } + %struct.list = type { i8*, %List } + %struct.mapping = type { %List*, i32, i32, i32, %Item_Set* } + %struct.nonterminal = type { i8*, i32, i32, i32, %PlankMap, %Rule } + %struct.operator = type { i8*, i32, i32, i32, i32, i32, %Table } %struct.pattern = type { %NonTerminal, %Operator, [2 x %NonTerminal] } - %struct.patternAST = type { %Symbol, sbyte*, %List } - %struct.plank = type { sbyte*, %List, int } - %struct.plankMap = type { %List, int, %StateMap } - %struct.rule = type { %DeltaCost, int, int, int, %NonTerminal, %Pattern, uint } - %struct.ruleAST = type { sbyte*, %PatternAST, int, %IntList, %Rule, %StrTableElement, %StrTableElement } - %struct.stateMap = type { sbyte*, %Plank, int, short* } - %struct.strTableElement = type { sbyte*, %IntList, sbyte* } - %struct.symbol = type { sbyte*, int, { %Operator } } - %struct.table = type { %Operator, %List, short*, [2 x %Dimension], %Item_Set* } -%yylval = external global %YYSTYPE ; <%YYSTYPE*> [#uses=1] -%yylhs = external global [25 x short] ; <[25 x short]*> [#uses=1] -%yylen = external global [25 x short] ; <[25 x short]*> [#uses=1] -%yydefred = external global [43 x short] ; <[43 x short]*> [#uses=1] -%yydgoto = external global [12 x short] ; <[12 x short]*> [#uses=1] -%yysindex = external global [43 x short] ; <[43 x short]*> [#uses=2] -%yyrindex = external global [43 x short] ; <[43 x short]*> [#uses=1] -%yygindex = external global [12 x short] ; <[12 x short]*> [#uses=1] -%yytable = external global [263 x short] ; <[263 x short]*> [#uses=4] -%yycheck = external global [263 x short] ; <[263 x short]*> [#uses=4] -%yynerrs = external global int ; [#uses=3] -%yyerrflag = external global int ; [#uses=6] -%yychar = external global int ; [#uses=15] -%yyssp = external global short* ; [#uses=15] -%yyvsp = external global %YYSTYPE* ; <%YYSTYPE**> [#uses=30] -%yyval = external global %YYSTYPE ; <%YYSTYPE*> [#uses=1] -%yyss = external global short* ; [#uses=3] -%yysslim = external global short* ; [#uses=3] -%yyvs = external global %YYSTYPE* ; <%YYSTYPE**> [#uses=1] -%.LC01 = external global [13 x sbyte] ; <[13 x sbyte]*> [#uses=1] -%.LC1 = external global [20 x sbyte] ; <[20 x sbyte]*> [#uses=1] - -implementation ; Functions: - -int %yyparse() { -bb0: ; No predecessors! - store int 0, int* %yynerrs - store int 0, int* %yyerrflag - store int -1, int* %yychar - %reg113 = load short** %yyss ; [#uses=1] - %cond581 = setne short* %reg113, null ; [#uses=1] - br bool %cond581, label %bb3, label %bb2 + %struct.patternAST = type { %Symbol, i8*, %List } + %struct.plank = type { i8*, %List, i32 } + %struct.plankMap = type { %List, i32, %StateMap } + %struct.rule = type { %DeltaCost, i32, i32, i32, %NonTerminal, %Pattern, i32 } + %struct.ruleAST = type { i8*, %PatternAST, i32, %IntList, %Rule, %StrTableElement, %StrTableElement } + %struct.stateMap = type { i8*, %Plank, i32, i16* } + %struct.strTableElement = type { i8*, %IntList, i8* } + %struct.symbol = type { i8*, i32, { %Operator } } + %struct.table = type { %Operator, %List, i16*, [2 x %Dimension], %Item_Set* } +@yylval = external global %YYSTYPE ; <%YYSTYPE*> [#uses=1] +@yylhs = external global [25 x i16] ; <[25 x i16]*> [#uses=1] +@yylen = external global [25 x i16] ; <[25 x i16]*> [#uses=1] +@yydefred = external global [43 x i16] ; <[43 x i16]*> [#uses=1] +@yydgoto = external global [12 x i16] ; <[12 x i16]*> [#uses=1] +@yysindex = external global [43 x i16] ; <[43 x i16]*> [#uses=2] +@yyrindex = external global [43 x i16] ; <[43 x i16]*> [#uses=1] +@yygindex = external global [12 x i16] ; <[12 x i16]*> [#uses=1] +@yytable = external global [263 x i16] ; <[263 x i16]*> [#uses=4] +@yycheck = external global [263 x i16] ; <[263 x i16]*> [#uses=4] +@yynerrs = external global i32 ; [#uses=3] +@yyerrflag = external global i32 ; [#uses=6] +@yychar = external global i32 ; [#uses=15] +@yyssp = external global i16* ; [#uses=15] +@yyvsp = external global %YYSTYPE* ; <%YYSTYPE**> [#uses=30] +@yyval = external global %YYSTYPE ; <%YYSTYPE*> [#uses=1] +@yyss = external global i16* ; [#uses=3] +@yysslim = external global i16* ; [#uses=3] +@yyvs = external global %YYSTYPE* ; <%YYSTYPE**> [#uses=1] +@.LC01 = external global [13 x i8] ; <[13 x i8]*> [#uses=1] +@.LC1 = external global [20 x i8] ; <[20 x i8]*> [#uses=1] + +define i32 @yyparse() { +bb0: + store i32 0, i32* @yynerrs + store i32 0, i32* @yyerrflag + store i32 -1, i32* @yychar + %reg113 = load i16** @yyss ; [#uses=1] + %cond581 = icmp ne i16* %reg113, null ; [#uses=1] + br i1 %cond581, label %bb3, label %bb2 bb2: ; preds = %bb0 - %reg584 = call int %yygrowstack( ) ; [#uses=1] - %cond584 = setne int %reg584, 0 ; [#uses=1] - br bool %cond584, label %bb113, label %bb3 + %reg584 = call i32 @yygrowstack( ) ; [#uses=1] + %cond584 = icmp ne i32 %reg584, 0 ; [#uses=1] + br i1 %cond584, label %bb113, label %bb3 bb3: ; preds = %bb2, %bb0 - %reg115 = load short** %yyss ; [#uses=1] - store short* %reg115, short** %yyssp - %reg116 = load %YYSTYPE** %yyvs ; <%YYSTYPE*> [#uses=1] - store %YYSTYPE* %reg116, %YYSTYPE** %yyvsp - %reg117 = load short** %yyssp ; [#uses=1] - store short 0, short* %reg117 + %reg115 = load i16** @yyss ; [#uses=1] + store i16* %reg115, i16** @yyssp + %reg116 = load %YYSTYPE** @yyvs ; <%YYSTYPE*> [#uses=1] + store %YYSTYPE* %reg116, %YYSTYPE** @yyvsp + %reg117 = load i16** @yyssp ; [#uses=1] + store i16 0, i16* %reg117 br label %bb4 -bb4: ; preds = %bb14, %bb15, %bb31, %bb35, %bb102, %bb112, %bb3 - %reg458 = phi uint [ %reg476, %bb112 ], [ 1, %bb102 ], [ %reg458, %bb35 ], [ %cast768, %bb31 ], [ %cast658, %bb15 ], [ %cast658, %bb14 ], [ 0, %bb3 ] ; [#uses=2] - %reg458-idxcast = cast uint %reg458 to long ; [#uses=3] - %reg594 = getelementptr [43 x short]* %yydefred, long 0, long %reg458-idxcast ; [#uses=1] - %reg125 = load short* %reg594 ; [#uses=1] - %cast599 = cast short %reg125 to int ; [#uses=2] - %cond600 = setne int %cast599, 0 ; [#uses=1] - br bool %cond600, label %bb36, label %bb5 +bb4: ; preds = %bb112, %bb102, %bb35, %bb31, %bb15, %bb14, %bb3 + %reg458 = phi i32 [ %reg476, %bb112 ], [ 1, %bb102 ], [ %reg458, %bb35 ], [ %cast768, %bb31 ], [ %cast658, %bb15 ], [ %cast658, %bb14 ], [ 0, %bb3 ] ; [#uses=2] + %reg458-idxcast = zext i32 %reg458 to i64 ; [#uses=3] + %reg594 = getelementptr [43 x i16]* @yydefred, i64 0, i64 %reg458-idxcast ; [#uses=1] + %reg125 = load i16* %reg594 ; [#uses=1] + %cast599 = sext i16 %reg125 to i32 ; [#uses=2] + %cond600 = icmp ne i32 %cast599, 0 ; [#uses=1] + br i1 %cond600, label %bb36, label %bb5 bb5: ; preds = %bb4 - %reg127 = load int* %yychar ; [#uses=1] - %cond603 = setge int %reg127, 0 ; [#uses=1] - br bool %cond603, label %bb8, label %bb6 + %reg127 = load i32* @yychar ; [#uses=1] + %cond603 = icmp sge i32 %reg127, 0 ; [#uses=1] + br i1 %cond603, label %bb8, label %bb6 bb6: ; preds = %bb5 - %reg607 = call int %yylex( ) ; [#uses=1] - store int %reg607, int* %yychar - %reg129 = load int* %yychar ; [#uses=1] - %cond609 = setge int %reg129, 0 ; [#uses=1] - br bool %cond609, label %bb8, label %bb7 + %reg607 = call i32 @yylex( ) ; [#uses=1] + store i32 %reg607, i32* @yychar + %reg129 = load i32* @yychar ; [#uses=1] + %cond609 = icmp sge i32 %reg129, 0 ; [#uses=1] + br i1 %cond609, label %bb8, label %bb7 bb7: ; preds = %bb6 - store int 0, int* %yychar + store i32 0, i32* @yychar br label %bb8 bb8: ; preds = %bb7, %bb6, %bb5 - %reg615 = getelementptr [43 x short]* %yysindex, long 0, long %reg458-idxcast ; [#uses=1] - %reg137 = load short* %reg615 ; [#uses=1] - %cast620 = cast short %reg137 to int ; [#uses=2] - %cond621 = seteq int %cast620, 0 ; [#uses=1] - br bool %cond621, label %bb16, label %bb9 + %reg615 = getelementptr [43 x i16]* @yysindex, i64 0, i64 %reg458-idxcast ; [#uses=1] + %reg137 = load i16* %reg615 ; [#uses=1] + %cast620 = sext i16 %reg137 to i32 ; [#uses=2] + %cond621 = icmp eq i32 %cast620, 0 ; [#uses=1] + br i1 %cond621, label %bb16, label %bb9 bb9: ; preds = %bb8 - %reg139 = load int* %yychar ; [#uses=2] - %reg460 = add int %cast620, %reg139 ; [#uses=3] - %cond624 = setlt int %reg460, 0 ; [#uses=1] - br bool %cond624, label %bb16, label %bb10 + %reg139 = load i32* @yychar ; [#uses=2] + %reg460 = add i32 %cast620, %reg139 ; [#uses=3] + %cond624 = icmp slt i32 %reg460, 0 ; [#uses=1] + br i1 %cond624, label %bb16, label %bb10 bb10: ; preds = %bb9 - %cond627 = setgt int %reg460, 262 ; [#uses=1] - br bool %cond627, label %bb16, label %bb11 + %cond627 = icmp sgt i32 %reg460, 262 ; [#uses=1] + br i1 %cond627, label %bb16, label %bb11 bb11: ; preds = %bb10 - %reg460-idxcast = cast int %reg460 to long ; [#uses=2] - %reg632 = getelementptr [263 x short]* %yycheck, long 0, long %reg460-idxcast ; [#uses=1] - %reg148 = load short* %reg632 ; [#uses=1] - %cast637 = cast short %reg148 to int ; [#uses=1] - %cond639 = setne int %cast637, %reg139 ; [#uses=1] - br bool %cond639, label %bb16, label %bb12 + %reg460-idxcast = sext i32 %reg460 to i64 ; [#uses=2] + %reg632 = getelementptr [263 x i16]* @yycheck, i64 0, i64 %reg460-idxcast ; [#uses=1] + %reg148 = load i16* %reg632 ; [#uses=1] + %cast637 = sext i16 %reg148 to i32 ; [#uses=1] + %cond639 = icmp ne i32 %cast637, %reg139 ; [#uses=1] + br i1 %cond639, label %bb16, label %bb12 bb12: ; preds = %bb11 - %reg150 = load short** %yyssp ; [#uses=1] - %cast640 = cast short* %reg150 to sbyte* ; [#uses=1] - %reg151 = load short** %yysslim ; [#uses=1] - %cast641 = cast short* %reg151 to sbyte* ; [#uses=1] - %cond642 = setlt sbyte* %cast640, %cast641 ; [#uses=1] - br bool %cond642, label %bb14, label %bb13 + %reg150 = load i16** @yyssp ; [#uses=1] + %cast640 = bitcast i16* %reg150 to i8* ; [#uses=1] + %reg151 = load i16** @yysslim ; [#uses=1] + %cast641 = bitcast i16* %reg151 to i8* ; [#uses=1] + %cond642 = icmp ult i8* %cast640, %cast641 ; [#uses=1] + br i1 %cond642, label %bb14, label %bb13 bb13: ; preds = %bb12 - %reg644 = call int %yygrowstack( ) ; [#uses=1] - %cond644 = setne int %reg644, 0 ; [#uses=1] - br bool %cond644, label %bb113, label %bb14 + %reg644 = call i32 @yygrowstack( ) ; [#uses=1] + %cond644 = icmp ne i32 %reg644, 0 ; [#uses=1] + br i1 %cond644, label %bb113, label %bb14 bb14: ; preds = %bb13, %bb12 - %reg153 = load short** %yyssp ; [#uses=1] - %reg647 = getelementptr short* %reg153, long 1 ; [#uses=2] - store short* %reg647, short** %yyssp - %reg653 = getelementptr [263 x short]* %yytable, long 0, long %reg460-idxcast ; [#uses=1] - %reg162 = load short* %reg653 ; [#uses=2] - %cast658 = cast short %reg162 to uint ; [#uses=2] - store short %reg162, short* %reg647 - %reg164 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %reg661 = getelementptr %YYSTYPE* %reg164, long 1 ; <%YYSTYPE*> [#uses=1] - store %YYSTYPE* %reg661, %YYSTYPE** %yyvsp - %reg167 = load %IntList* getelementptr (%YYSTYPE* %yylval, long 0, uint 0) ; <%IntList> [#uses=1] - %reg661.idx1 = getelementptr %YYSTYPE* %reg164, long 1, uint 0 ; <%IntList*> [#uses=1] + %reg153 = load i16** @yyssp ; [#uses=1] + %reg647 = getelementptr i16* %reg153, i64 1 ; [#uses=2] + store i16* %reg647, i16** @yyssp + %reg653 = getelementptr [263 x i16]* @yytable, i64 0, i64 %reg460-idxcast ; [#uses=1] + %reg162 = load i16* %reg653 ; [#uses=2] + %cast658 = sext i16 %reg162 to i32 ; [#uses=2] + store i16 %reg162, i16* %reg647 + %reg164 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %reg661 = getelementptr %YYSTYPE* %reg164, i64 1 ; <%YYSTYPE*> [#uses=1] + store %YYSTYPE* %reg661, %YYSTYPE** @yyvsp + %reg167 = load %IntList* getelementptr (%YYSTYPE* @yylval, i64 0, i32 0) ; <%IntList> [#uses=1] + %reg661.idx1 = getelementptr %YYSTYPE* %reg164, i64 1, i32 0 ; <%IntList*> [#uses=1] store %IntList %reg167, %IntList* %reg661.idx1 - store int -1, int* %yychar - %reg169 = load int* %yyerrflag ; [#uses=2] - %cond669 = setle int %reg169, 0 ; [#uses=1] - br bool %cond669, label %bb4, label %bb15 + store i32 -1, i32* @yychar + %reg169 = load i32* @yyerrflag ; [#uses=2] + %cond669 = icmp sle i32 %reg169, 0 ; [#uses=1] + br i1 %cond669, label %bb4, label %bb15 bb15: ; preds = %bb14 - %reg171 = add int %reg169, -1 ; [#uses=1] - store int %reg171, int* %yyerrflag + %reg171 = add i32 %reg169, -1 ; [#uses=1] + store i32 %reg171, i32* @yyerrflag br label %bb4 bb16: ; preds = %bb11, %bb10, %bb9, %bb8 - %reg677 = getelementptr [43 x short]* %yyrindex, long 0, long %reg458-idxcast ; [#uses=1] - %reg178 = load short* %reg677 ; [#uses=1] - %cast682 = cast short %reg178 to int ; [#uses=2] - %cond683 = seteq int %cast682, 0 ; [#uses=1] - br bool %cond683, label %bb21, label %bb17 + %reg677 = getelementptr [43 x i16]* @yyrindex, i64 0, i64 %reg458-idxcast ; [#uses=1] + %reg178 = load i16* %reg677 ; [#uses=1] + %cast682 = sext i16 %reg178 to i32 ; [#uses=2] + %cond683 = icmp eq i32 %cast682, 0 ; [#uses=1] + br i1 %cond683, label %bb21, label %bb17 bb17: ; preds = %bb16 - %reg180 = load int* %yychar ; [#uses=2] - %reg463 = add int %cast682, %reg180 ; [#uses=3] - %cond686 = setlt int %reg463, 0 ; [#uses=1] - br bool %cond686, label %bb21, label %bb18 + %reg180 = load i32* @yychar ; [#uses=2] + %reg463 = add i32 %cast682, %reg180 ; [#uses=3] + %cond686 = icmp slt i32 %reg463, 0 ; [#uses=1] + br i1 %cond686, label %bb21, label %bb18 bb18: ; preds = %bb17 - %cond689 = setgt int %reg463, 262 ; [#uses=1] - br bool %cond689, label %bb21, label %bb19 + %cond689 = icmp sgt i32 %reg463, 262 ; [#uses=1] + br i1 %cond689, label %bb21, label %bb19 bb19: ; preds = %bb18 - %reg463-idxcast = cast int %reg463 to long ; [#uses=2] - %reg694 = getelementptr [263 x short]* %yycheck, long 0, long %reg463-idxcast ; [#uses=1] - %reg189 = load short* %reg694 ; [#uses=1] - %cast699 = cast short %reg189 to int ; [#uses=1] - %cond701 = setne int %cast699, %reg180 ; [#uses=1] - br bool %cond701, label %bb21, label %bb20 + %reg463-idxcast = sext i32 %reg463 to i64 ; [#uses=2] + %reg694 = getelementptr [263 x i16]* @yycheck, i64 0, i64 %reg463-idxcast ; [#uses=1] + %reg189 = load i16* %reg694 ; [#uses=1] + %cast699 = sext i16 %reg189 to i32 ; [#uses=1] + %cond701 = icmp ne i32 %cast699, %reg180 ; [#uses=1] + br i1 %cond701, label %bb21, label %bb20 bb20: ; preds = %bb19 - %reg704 = getelementptr [263 x short]* %yytable, long 0, long %reg463-idxcast ; [#uses=1] - %reg197 = load short* %reg704 ; [#uses=1] - %cast709 = cast short %reg197 to int ; [#uses=1] + %reg704 = getelementptr [263 x i16]* @yytable, i64 0, i64 %reg463-idxcast ; [#uses=1] + %reg197 = load i16* %reg704 ; [#uses=1] + %cast709 = sext i16 %reg197 to i32 ; [#uses=1] br label %bb36 bb21: ; preds = %bb19, %bb18, %bb17, %bb16 - %reg198 = load int* %yyerrflag ; [#uses=1] - %cond711 = setne int %reg198, 0 ; [#uses=1] - br bool %cond711, label %bb23, label %bb22 + %reg198 = load i32* @yyerrflag ; [#uses=1] + %cond711 = icmp ne i32 %reg198, 0 ; [#uses=1] + br i1 %cond711, label %bb23, label %bb22 bb22: ; preds = %bb21 - call void %yyerror( sbyte* getelementptr ([13 x sbyte]* %.LC01, long 0, long 0) ) - %reg200 = load int* %yynerrs ; [#uses=1] - %reg201 = add int %reg200, 1 ; [#uses=1] - store int %reg201, int* %yynerrs + call void @yyerror( i8* getelementptr ([13 x i8]* @.LC01, i64 0, i64 0) ) + %reg200 = load i32* @yynerrs ; [#uses=1] + %reg201 = add i32 %reg200, 1 ; [#uses=1] + store i32 %reg201, i32* @yynerrs br label %bb23 bb23: ; preds = %bb22, %bb21 - %reg202 = load int* %yyerrflag ; [#uses=1] - %cond719 = setgt int %reg202, 2 ; [#uses=1] - br bool %cond719, label %bb34, label %bb24 + %reg202 = load i32* @yyerrflag ; [#uses=1] + %cond719 = icmp sgt i32 %reg202, 2 ; [#uses=1] + br i1 %cond719, label %bb34, label %bb24 bb24: ; preds = %bb23 - store int 3, int* %yyerrflag - %reg241 = load short** %yyss ; [#uses=1] - %cast778 = cast short* %reg241 to sbyte* ; [#uses=1] + store i32 3, i32* @yyerrflag + %reg241 = load i16** @yyss ; [#uses=1] + %cast778 = bitcast i16* %reg241 to i8* ; [#uses=1] br label %bb25 bb25: ; preds = %bb33, %bb24 - %reg204 = load short** %yyssp ; [#uses=4] - %reg206 = load short* %reg204 ; [#uses=1] - %reg206-idxcast = cast short %reg206 to long ; [#uses=1] - %reg727 = getelementptr [43 x short]* %yysindex, long 0, long %reg206-idxcast ; [#uses=1] - %reg212 = load short* %reg727 ; [#uses=2] - %cast732 = cast short %reg212 to int ; [#uses=2] - %cond733 = seteq int %cast732, 0 ; [#uses=1] - br bool %cond733, label %bb32, label %bb26 + %reg204 = load i16** @yyssp ; [#uses=4] + %reg206 = load i16* %reg204 ; [#uses=1] + %reg206-idxcast = sext i16 %reg206 to i64 ; [#uses=1] + %reg727 = getelementptr [43 x i16]* @yysindex, i64 0, i64 %reg206-idxcast ; [#uses=1] + %reg212 = load i16* %reg727 ; [#uses=2] + %cast732 = sext i16 %reg212 to i32 ; [#uses=2] + %cond733 = icmp eq i32 %cast732, 0 ; [#uses=1] + br i1 %cond733, label %bb32, label %bb26 bb26: ; preds = %bb25 - %reg466 = add int %cast732, 256 ; [#uses=2] - %cond736 = setlt int %reg466, 0 ; [#uses=1] - br bool %cond736, label %bb32, label %bb27 + %reg466 = add i32 %cast732, 256 ; [#uses=2] + %cond736 = icmp slt i32 %reg466, 0 ; [#uses=1] + br i1 %cond736, label %bb32, label %bb27 bb27: ; preds = %bb26 - %cond739 = setgt int %reg466, 262 ; [#uses=1] - br bool %cond739, label %bb32, label %bb28 + %cond739 = icmp sgt i32 %reg466, 262 ; [#uses=1] + br i1 %cond739, label %bb32, label %bb28 bb28: ; preds = %bb27 - %reg212-idxcast = cast short %reg212 to long ; [#uses=1] - %reg212-idxcast-offset = add long %reg212-idxcast, 256 ; [#uses=2] - %reg744 = getelementptr [263 x short]* %yycheck, long 0, long %reg212-idxcast-offset ; [#uses=1] - %reg221 = load short* %reg744 ; [#uses=1] - %cond748 = setne short %reg221, 256 ; [#uses=1] - br bool %cond748, label %bb32, label %bb29 + %reg212-idxcast = sext i16 %reg212 to i64 ; [#uses=1] + %reg212-idxcast-offset = add i64 %reg212-idxcast, 256 ; [#uses=2] + %reg744 = getelementptr [263 x i16]* @yycheck, i64 0, i64 %reg212-idxcast-offset ; [#uses=1] + %reg221 = load i16* %reg744 ; [#uses=1] + %cond748 = icmp ne i16 %reg221, 256 ; [#uses=1] + br i1 %cond748, label %bb32, label %bb29 bb29: ; preds = %bb28 - %cast750 = cast short* %reg204 to sbyte* ; [#uses=1] - %reg223 = load short** %yysslim ; [#uses=1] - %cast751 = cast short* %reg223 to sbyte* ; [#uses=1] - %cond752 = setlt sbyte* %cast750, %cast751 ; [#uses=1] - br bool %cond752, label %bb31, label %bb30 + %cast750 = bitcast i16* %reg204 to i8* ; [#uses=1] + %reg223 = load i16** @yysslim ; [#uses=1] + %cast751 = bitcast i16* %reg223 to i8* ; [#uses=1] + %cond752 = icmp ult i8* %cast750, %cast751 ; [#uses=1] + br i1 %cond752, label %bb31, label %bb30 bb30: ; preds = %bb29 - %reg754 = call int %yygrowstack( ) ; [#uses=1] - %cond754 = setne int %reg754, 0 ; [#uses=1] - br bool %cond754, label %bb113, label %bb31 + %reg754 = call i32 @yygrowstack( ) ; [#uses=1] + %cond754 = icmp ne i32 %reg754, 0 ; [#uses=1] + br i1 %cond754, label %bb113, label %bb31 bb31: ; preds = %bb30, %bb29 - %reg225 = load short** %yyssp ; [#uses=1] - %reg757 = getelementptr short* %reg225, long 1 ; [#uses=2] - store short* %reg757, short** %yyssp - %reg763 = getelementptr [263 x short]* %yytable, long 0, long %reg212-idxcast-offset ; [#uses=1] - %reg234 = load short* %reg763 ; [#uses=2] - %cast768 = cast short %reg234 to uint ; [#uses=1] - store short %reg234, short* %reg757 - %reg236 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %reg771 = getelementptr %YYSTYPE* %reg236, long 1 ; <%YYSTYPE*> [#uses=1] - store %YYSTYPE* %reg771, %YYSTYPE** %yyvsp - %reg239 = load %IntList* getelementptr (%YYSTYPE* %yylval, long 0, uint 0) ; <%IntList> [#uses=1] - %reg771.idx1 = getelementptr %YYSTYPE* %reg236, long 1, uint 0 ; <%IntList*> [#uses=1] + %reg225 = load i16** @yyssp ; [#uses=1] + %reg757 = getelementptr i16* %reg225, i64 1 ; [#uses=2] + store i16* %reg757, i16** @yyssp + %reg763 = getelementptr [263 x i16]* @yytable, i64 0, i64 %reg212-idxcast-offset ; [#uses=1] + %reg234 = load i16* %reg763 ; [#uses=2] + %cast768 = sext i16 %reg234 to i32 ; [#uses=1] + store i16 %reg234, i16* %reg757 + %reg236 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %reg771 = getelementptr %YYSTYPE* %reg236, i64 1 ; <%YYSTYPE*> [#uses=1] + store %YYSTYPE* %reg771, %YYSTYPE** @yyvsp + %reg239 = load %IntList* getelementptr (%YYSTYPE* @yylval, i64 0, i32 0) ; <%IntList> [#uses=1] + %reg771.idx1 = getelementptr %YYSTYPE* %reg236, i64 1, i32 0 ; <%IntList*> [#uses=1] store %IntList %reg239, %IntList* %reg771.idx1 br label %bb4 bb32: ; preds = %bb28, %bb27, %bb26, %bb25 - %cast777 = cast short* %reg204 to sbyte* ; [#uses=1] - %cond779 = setle sbyte* %cast777, %cast778 ; [#uses=1] - br bool %cond779, label %UnifiedExitNode, label %bb33 + %cast777 = bitcast i16* %reg204 to i8* ; [#uses=1] + %cond779 = icmp ule i8* %cast777, %cast778 ; [#uses=1] + br i1 %cond779, label %UnifiedExitNode, label %bb33 bb33: ; preds = %bb32 - %reg781 = getelementptr short* %reg204, long -1 ; [#uses=1] - store short* %reg781, short** %yyssp - %reg244 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=1] - %reg786 = getelementptr %YYSTYPE* %reg244, long -1 ; <%YYSTYPE*> [#uses=1] - store %YYSTYPE* %reg786, %YYSTYPE** %yyvsp + %reg781 = getelementptr i16* %reg204, i64 -1 ; [#uses=1] + store i16* %reg781, i16** @yyssp + %reg244 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1] + %reg786 = getelementptr %YYSTYPE* %reg244, i64 -1 ; <%YYSTYPE*> [#uses=1] + store %YYSTYPE* %reg786, %YYSTYPE** @yyvsp br label %bb25 bb34: ; preds = %bb23 - %reg246 = load int* %yychar ; [#uses=1] - %cond791 = seteq int %reg246, 0 ; [#uses=1] - br bool %cond791, label %UnifiedExitNode, label %bb35 + %reg246 = load i32* @yychar ; [#uses=1] + %cond791 = icmp eq i32 %reg246, 0 ; [#uses=1] + br i1 %cond791, label %UnifiedExitNode, label %bb35 bb35: ; preds = %bb34 - store int -1, int* %yychar + store i32 -1, i32* @yychar br label %bb4 bb36: ; preds = %bb20, %bb4 - %reg468 = phi int [ %cast709, %bb20 ], [ %cast599, %bb4 ] ; [#uses=31] - %reg468-idxcast = cast int %reg468 to long ; [#uses=2] - %reg796 = getelementptr [25 x short]* %yylen, long 0, long %reg468-idxcast ; [#uses=1] - %reg254 = load short* %reg796 ; [#uses=2] - %reg259 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=1] - %reg254-idxcast = cast short %reg254 to long ; [#uses=1] - %reg254-idxcast-scale = mul long %reg254-idxcast, -1 ; [#uses=1] - %reg254-idxcast-scale-offset = add long %reg254-idxcast-scale, 1 ; [#uses=1] - %reg261.idx1 = getelementptr %YYSTYPE* %reg259, long %reg254-idxcast-scale-offset, uint 0 ; <%IntList*> [#uses=1] + %reg468 = phi i32 [ %cast709, %bb20 ], [ %cast599, %bb4 ] ; [#uses=31] + %reg468-idxcast = sext i32 %reg468 to i64 ; [#uses=2] + %reg796 = getelementptr [25 x i16]* @yylen, i64 0, i64 %reg468-idxcast ; [#uses=1] + %reg254 = load i16* %reg796 ; [#uses=2] + %reg259 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1] + %reg254-idxcast = sext i16 %reg254 to i64 ; [#uses=1] + %reg254-idxcast-scale = mul i64 %reg254-idxcast, -1 ; [#uses=1] + %reg254-idxcast-scale-offset = add i64 %reg254-idxcast-scale, 1 ; [#uses=1] + %reg261.idx1 = getelementptr %YYSTYPE* %reg259, i64 %reg254-idxcast-scale-offset, i32 0 ; <%IntList*> [#uses=1] %reg261 = load %IntList* %reg261.idx1 ; <%IntList> [#uses=1] - store %IntList %reg261, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) - %cond812 = seteq int %reg468, 13 ; [#uses=1] - br bool %cond812, label %bb85, label %bb37 + store %IntList %reg261, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) + %cond812 = icmp eq i32 %reg468, 13 ; [#uses=1] + br i1 %cond812, label %bb85, label %bb37 bb37: ; preds = %bb36 - %cond814 = setgt int %reg468, 13 ; [#uses=1] - br bool %cond814, label %bb56, label %bb38 + %cond814 = icmp sgt i32 %reg468, 13 ; [#uses=1] + br i1 %cond814, label %bb56, label %bb38 bb38: ; preds = %bb37 - %cond817 = seteq int %reg468, 7 ; [#uses=1] - br bool %cond817, label %bb79, label %bb39 + %cond817 = icmp eq i32 %reg468, 7 ; [#uses=1] + br i1 %cond817, label %bb79, label %bb39 bb39: ; preds = %bb38 - %cond819 = setgt int %reg468, 7 ; [#uses=1] - br bool %cond819, label %bb48, label %bb40 + %cond819 = icmp sgt i32 %reg468, 7 ; [#uses=1] + br i1 %cond819, label %bb48, label %bb40 bb40: ; preds = %bb39 - %cond822 = seteq int %reg468, 4 ; [#uses=1] - br bool %cond822, label %bb76, label %bb41 + %cond822 = icmp eq i32 %reg468, 4 ; [#uses=1] + br i1 %cond822, label %bb76, label %bb41 bb41: ; preds = %bb40 - %cond824 = setgt int %reg468, 4 ; [#uses=1] - br bool %cond824, label %bb45, label %bb42 + %cond824 = icmp sgt i32 %reg468, 4 ; [#uses=1] + br i1 %cond824, label %bb45, label %bb42 bb42: ; preds = %bb41 - %cond827 = seteq int %reg468, 2 ; [#uses=1] - br bool %cond827, label %bb74, label %bb43 + %cond827 = icmp eq i32 %reg468, 2 ; [#uses=1] + br i1 %cond827, label %bb74, label %bb43 bb43: ; preds = %bb42 - %cond829 = seteq int %reg468, 3 ; [#uses=1] - br bool %cond829, label %bb75, label %bb97 + %cond829 = icmp eq i32 %reg468, 3 ; [#uses=1] + br i1 %cond829, label %bb75, label %bb97 bb45: ; preds = %bb41 - %cond831 = seteq int %reg468, 5 ; [#uses=1] - br bool %cond831, label %bb77, label %bb46 + %cond831 = icmp eq i32 %reg468, 5 ; [#uses=1] + br i1 %cond831, label %bb77, label %bb46 bb46: ; preds = %bb45 - %cond833 = seteq int %reg468, 6 ; [#uses=1] - br bool %cond833, label %bb78, label %bb97 + %cond833 = icmp eq i32 %reg468, 6 ; [#uses=1] + br i1 %cond833, label %bb78, label %bb97 bb48: ; preds = %bb39 - %cond835 = seteq int %reg468, 10 ; [#uses=1] - br bool %cond835, label %bb82, label %bb49 + %cond835 = icmp eq i32 %reg468, 10 ; [#uses=1] + br i1 %cond835, label %bb82, label %bb49 bb49: ; preds = %bb48 - %cond837 = setgt int %reg468, 10 ; [#uses=1] - br bool %cond837, label %bb53, label %bb50 + %cond837 = icmp sgt i32 %reg468, 10 ; [#uses=1] + br i1 %cond837, label %bb53, label %bb50 bb50: ; preds = %bb49 - %cond840 = seteq int %reg468, 8 ; [#uses=1] - br bool %cond840, label %bb80, label %bb51 + %cond840 = icmp eq i32 %reg468, 8 ; [#uses=1] + br i1 %cond840, label %bb80, label %bb51 bb51: ; preds = %bb50 - %cond842 = seteq int %reg468, 9 ; [#uses=1] - br bool %cond842, label %bb81, label %bb97 + %cond842 = icmp eq i32 %reg468, 9 ; [#uses=1] + br i1 %cond842, label %bb81, label %bb97 bb53: ; preds = %bb49 - %cond844 = seteq int %reg468, 11 ; [#uses=1] - br bool %cond844, label %bb83, label %bb54 + %cond844 = icmp eq i32 %reg468, 11 ; [#uses=1] + br i1 %cond844, label %bb83, label %bb54 bb54: ; preds = %bb53 - %cond846 = seteq int %reg468, 12 ; [#uses=1] - br bool %cond846, label %bb84, label %bb97 + %cond846 = icmp eq i32 %reg468, 12 ; [#uses=1] + br i1 %cond846, label %bb84, label %bb97 bb56: ; preds = %bb37 - %cond848 = seteq int %reg468, 19 ; [#uses=1] - br bool %cond848, label %bb91, label %bb57 + %cond848 = icmp eq i32 %reg468, 19 ; [#uses=1] + br i1 %cond848, label %bb91, label %bb57 bb57: ; preds = %bb56 - %cond850 = setgt int %reg468, 19 ; [#uses=1] - br bool %cond850, label %bb66, label %bb58 + %cond850 = icmp sgt i32 %reg468, 19 ; [#uses=1] + br i1 %cond850, label %bb66, label %bb58 bb58: ; preds = %bb57 - %cond853 = seteq int %reg468, 16 ; [#uses=1] - br bool %cond853, label %bb88, label %bb59 + %cond853 = icmp eq i32 %reg468, 16 ; [#uses=1] + br i1 %cond853, label %bb88, label %bb59 bb59: ; preds = %bb58 - %cond855 = setgt int %reg468, 16 ; [#uses=1] - br bool %cond855, label %bb63, label %bb60 + %cond855 = icmp sgt i32 %reg468, 16 ; [#uses=1] + br i1 %cond855, label %bb63, label %bb60 bb60: ; preds = %bb59 - %cond858 = seteq int %reg468, 14 ; [#uses=1] - br bool %cond858, label %bb86, label %bb61 + %cond858 = icmp eq i32 %reg468, 14 ; [#uses=1] + br i1 %cond858, label %bb86, label %bb61 bb61: ; preds = %bb60 - %cond860 = seteq int %reg468, 15 ; [#uses=1] - br bool %cond860, label %bb87, label %bb97 + %cond860 = icmp eq i32 %reg468, 15 ; [#uses=1] + br i1 %cond860, label %bb87, label %bb97 bb63: ; preds = %bb59 - %cond862 = seteq int %reg468, 17 ; [#uses=1] - br bool %cond862, label %bb89, label %bb64 + %cond862 = icmp eq i32 %reg468, 17 ; [#uses=1] + br i1 %cond862, label %bb89, label %bb64 bb64: ; preds = %bb63 - %cond864 = seteq int %reg468, 18 ; [#uses=1] - br bool %cond864, label %bb90, label %bb97 + %cond864 = icmp eq i32 %reg468, 18 ; [#uses=1] + br i1 %cond864, label %bb90, label %bb97 bb66: ; preds = %bb57 - %cond866 = seteq int %reg468, 22 ; [#uses=1] - br bool %cond866, label %bb94, label %bb67 + %cond866 = icmp eq i32 %reg468, 22 ; [#uses=1] + br i1 %cond866, label %bb94, label %bb67 bb67: ; preds = %bb66 - %cond868 = setgt int %reg468, 22 ; [#uses=1] - br bool %cond868, label %bb71, label %bb68 + %cond868 = icmp sgt i32 %reg468, 22 ; [#uses=1] + br i1 %cond868, label %bb71, label %bb68 bb68: ; preds = %bb67 - %cond871 = seteq int %reg468, 20 ; [#uses=1] - br bool %cond871, label %bb92, label %bb69 + %cond871 = icmp eq i32 %reg468, 20 ; [#uses=1] + br i1 %cond871, label %bb92, label %bb69 bb69: ; preds = %bb68 - %cond873 = seteq int %reg468, 21 ; [#uses=1] - br bool %cond873, label %bb93, label %bb97 + %cond873 = icmp eq i32 %reg468, 21 ; [#uses=1] + br i1 %cond873, label %bb93, label %bb97 bb71: ; preds = %bb67 - %cond875 = seteq int %reg468, 23 ; [#uses=1] - br bool %cond875, label %bb95, label %bb72 + %cond875 = icmp eq i32 %reg468, 23 ; [#uses=1] + br i1 %cond875, label %bb95, label %bb72 bb72: ; preds = %bb71 - %cond877 = seteq int %reg468, 24 ; [#uses=1] - br bool %cond877, label %bb96, label %bb97 + %cond877 = icmp eq i32 %reg468, 24 ; [#uses=1] + br i1 %cond877, label %bb96, label %bb97 bb74: ; preds = %bb42 - call void %yyfinished( ) + call void @yyfinished( ) br label %bb97 bb75: ; preds = %bb43 - %reg262 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %reg264.idx1 = getelementptr %YYSTYPE* %reg262, long -2, uint 0 ; <%IntList*> [#uses=1] + %reg262 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %reg264.idx1 = getelementptr %YYSTYPE* %reg262, i64 -2, i32 0 ; <%IntList*> [#uses=1] %reg264 = load %IntList* %reg264.idx1 ; <%IntList> [#uses=1] - %reg265.idx = getelementptr %YYSTYPE* %reg262, long 0, uint 0 ; <%IntList*> [#uses=1] + %reg265.idx = getelementptr %YYSTYPE* %reg262, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg265 = load %IntList* %reg265.idx ; <%IntList> [#uses=1] - %cast889 = cast %IntList %reg265 to %List ; <%List> [#uses=1] - %cast890 = cast %IntList %reg264 to %List ; <%List> [#uses=1] - call void %doSpec( %List %cast890, %List %cast889 ) + %cast889 = bitcast %IntList %reg265 to %List ; <%List> [#uses=1] + %cast890 = bitcast %IntList %reg264 to %List ; <%List> [#uses=1] + call void @doSpec( %List %cast890, %List %cast889 ) br label %bb97 bb76: ; preds = %bb40 - store %IntList null, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb77: ; preds = %bb45 - %reg269 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %cast894 = getelementptr %YYSTYPE* %reg269, long 0, uint 0 ; <%IntList*> [#uses=1] + %reg269 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %cast894 = getelementptr %YYSTYPE* %reg269, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg271 = load %IntList* %cast894 ; <%IntList> [#uses=1] - %reg271 = cast %IntList %reg271 to sbyte* ; [#uses=1] - %reg272.idx1 = getelementptr %YYSTYPE* %reg269, long -1, uint 0 ; <%IntList*> [#uses=1] + %reg271.upgrd.1 = bitcast %IntList %reg271 to i8* ; [#uses=1] + %reg272.idx1 = getelementptr %YYSTYPE* %reg269, i64 -1, i32 0 ; <%IntList*> [#uses=1] %reg272 = load %IntList* %reg272.idx1 ; <%IntList> [#uses=1] - %cast901 = cast %IntList %reg272 to %List ; <%List> [#uses=1] - %reg901 = call %List %newList( sbyte* %reg271, %List %cast901 ) ; <%List> [#uses=1] - cast %List %reg901 to %IntList ; <%IntList>:0 [#uses=1] - store %IntList %0, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %cast901 = bitcast %IntList %reg272 to %List ; <%List> [#uses=1] + %reg901 = call %List @newList( i8* %reg271.upgrd.1, %List %cast901 ) ; <%List> [#uses=1] + bitcast %List %reg901 to %IntList ; <%IntList>:0 [#uses=1] + store %IntList %0, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb78: ; preds = %bb46 - %reg275 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=1] - %reg277.idx = getelementptr %YYSTYPE* %reg275, long 0, uint 0 ; <%IntList*> [#uses=1] + %reg275 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1] + %reg277.idx = getelementptr %YYSTYPE* %reg275, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg277 = load %IntList* %reg277.idx ; <%IntList> [#uses=1] - %cast907 = cast %IntList %reg277 to %List ; <%List> [#uses=1] - %reg907 = call %Arity %newArity( int -1, %List %cast907 ) ; <%Arity> [#uses=1] - cast %Arity %reg907 to %IntList ; <%IntList>:1 [#uses=1] - store %IntList %1, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %cast907 = bitcast %IntList %reg277 to %List ; <%List> [#uses=1] + %reg907 = call %Arity @newArity( i32 -1, %List %cast907 ) ; <%Arity> [#uses=1] + bitcast %Arity %reg907 to %IntList ; <%IntList>:1 [#uses=1] + store %IntList %1, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb79: ; preds = %bb38 - store %IntList null, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) - %reg281 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=1] - %cast912 = getelementptr %YYSTYPE* %reg281, long 0, uint 0 ; <%IntList*> [#uses=1] + store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) + %reg281 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1] + %cast912 = getelementptr %YYSTYPE* %reg281, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg282 = load %IntList* %cast912 ; <%IntList> [#uses=1] - %reg282 = cast %IntList %reg282 to %List ; <%List> [#uses=1] - call void %doGram( %List %reg282 ) + %reg282.upgrd.2 = bitcast %IntList %reg282 to %List ; <%List> [#uses=1] + call void @doGram( %List %reg282.upgrd.2 ) br label %bb97 bb80: ; preds = %bb50 - store %IntList null, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) - %reg285 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=1] - %cast917 = getelementptr %YYSTYPE* %reg285, long 0, uint 0 ; <%IntList*> [#uses=1] + store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) + %reg285 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1] + %cast917 = getelementptr %YYSTYPE* %reg285, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg286 = load %IntList* %cast917 ; <%IntList> [#uses=1] - %reg286 = cast %IntList %reg286 to sbyte* ; [#uses=1] - call void %doStart( sbyte* %reg286 ) + %reg286.upgrd.3 = bitcast %IntList %reg286 to i8* ; [#uses=1] + call void @doStart( i8* %reg286.upgrd.3 ) br label %bb97 bb81: ; preds = %bb51 - store %IntList null, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb82: ; preds = %bb48 - %reg290 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %cast923 = getelementptr %YYSTYPE* %reg290, long 0, uint 0 ; <%IntList*> [#uses=1] + %reg290 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %cast923 = getelementptr %YYSTYPE* %reg290, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg292 = load %IntList* %cast923 ; <%IntList> [#uses=1] - %reg292 = cast %IntList %reg292 to sbyte* ; [#uses=1] - %reg293.idx1 = getelementptr %YYSTYPE* %reg290, long -1, uint 0 ; <%IntList*> [#uses=1] + %reg292.upgrd.4 = bitcast %IntList %reg292 to i8* ; [#uses=1] + %reg293.idx1 = getelementptr %YYSTYPE* %reg290, i64 -1, i32 0 ; <%IntList*> [#uses=1] %reg293 = load %IntList* %reg293.idx1 ; <%IntList> [#uses=1] - %cast930 = cast %IntList %reg293 to %List ; <%List> [#uses=1] - %reg930 = call %List %newList( sbyte* %reg292, %List %cast930 ) ; <%List> [#uses=1] - cast %List %reg930 to %IntList ; <%IntList>:2 [#uses=1] - store %IntList %2, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %cast930 = bitcast %IntList %reg293 to %List ; <%List> [#uses=1] + %reg930 = call %List @newList( i8* %reg292.upgrd.4, %List %cast930 ) ; <%List> [#uses=1] + bitcast %List %reg930 to %IntList ; <%IntList>:2 [#uses=1] + store %IntList %2, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb83: ; preds = %bb53 - store %IntList null, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb84: ; preds = %bb54 - %reg298 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %cast936 = getelementptr %YYSTYPE* %reg298, long 0, uint 0 ; <%IntList*> [#uses=1] + %reg298 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %cast936 = getelementptr %YYSTYPE* %reg298, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg300 = load %IntList* %cast936 ; <%IntList> [#uses=1] - %reg300 = cast %IntList %reg300 to sbyte* ; [#uses=1] - %reg301.idx1 = getelementptr %YYSTYPE* %reg298, long -1, uint 0 ; <%IntList*> [#uses=1] + %reg300.upgrd.5 = bitcast %IntList %reg300 to i8* ; [#uses=1] + %reg301.idx1 = getelementptr %YYSTYPE* %reg298, i64 -1, i32 0 ; <%IntList*> [#uses=1] %reg301 = load %IntList* %reg301.idx1 ; <%IntList> [#uses=1] - %cast943 = cast %IntList %reg301 to %List ; <%List> [#uses=1] - %reg943 = call %List %newList( sbyte* %reg300, %List %cast943 ) ; <%List> [#uses=1] - cast %List %reg943 to %IntList ; <%IntList>:3 [#uses=1] - store %IntList %3, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %cast943 = bitcast %IntList %reg301 to %List ; <%List> [#uses=1] + %reg943 = call %List @newList( i8* %reg300.upgrd.5, %List %cast943 ) ; <%List> [#uses=1] + bitcast %List %reg943 to %IntList ; <%IntList>:3 [#uses=1] + store %IntList %3, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb85: ; preds = %bb36 - %reg304 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %cast9521 = getelementptr %YYSTYPE* %reg304, long -2, uint 0 ; <%IntList*> [#uses=1] + %reg304 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %cast9521 = getelementptr %YYSTYPE* %reg304, i64 -2, i32 0 ; <%IntList*> [#uses=1] %reg306 = load %IntList* %cast9521 ; <%IntList> [#uses=1] - %reg306 = cast %IntList %reg306 to sbyte* ; [#uses=1] - %cast953 = cast %YYSTYPE* %reg304 to int* ; [#uses=1] - %reg307 = load int* %cast953 ; [#uses=1] - %reg955 = call %Binding %newBinding( sbyte* %reg306, int %reg307 ) ; <%Binding> [#uses=1] - cast %Binding %reg955 to %IntList ; <%IntList>:4 [#uses=1] - store %IntList %4, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %reg306.upgrd.6 = bitcast %IntList %reg306 to i8* ; [#uses=1] + %cast953 = bitcast %YYSTYPE* %reg304 to i32* ; [#uses=1] + %reg307 = load i32* %cast953 ; [#uses=1] + %reg955 = call %Binding @newBinding( i8* %reg306.upgrd.6, i32 %reg307 ) ; <%Binding> [#uses=1] + bitcast %Binding %reg955 to %IntList ; <%IntList>:4 [#uses=1] + store %IntList %4, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb86: ; preds = %bb60 - store %IntList null, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb87: ; preds = %bb61 - %reg312 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %cast961 = getelementptr %YYSTYPE* %reg312, long 0, uint 0 ; <%IntList*> [#uses=1] + %reg312 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %cast961 = getelementptr %YYSTYPE* %reg312, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg314 = load %IntList* %cast961 ; <%IntList> [#uses=1] - %reg314 = cast %IntList %reg314 to sbyte* ; [#uses=1] - %reg315.idx1 = getelementptr %YYSTYPE* %reg312, long -1, uint 0 ; <%IntList*> [#uses=1] + %reg314.upgrd.7 = bitcast %IntList %reg314 to i8* ; [#uses=1] + %reg315.idx1 = getelementptr %YYSTYPE* %reg312, i64 -1, i32 0 ; <%IntList*> [#uses=1] %reg315 = load %IntList* %reg315.idx1 ; <%IntList> [#uses=1] - %cast968 = cast %IntList %reg315 to %List ; <%List> [#uses=1] - %reg968 = call %List %newList( sbyte* %reg314, %List %cast968 ) ; <%List> [#uses=1] - cast %List %reg968 to %IntList ; <%IntList>:5 [#uses=1] - store %IntList %5, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %cast968 = bitcast %IntList %reg315 to %List ; <%List> [#uses=1] + %reg968 = call %List @newList( i8* %reg314.upgrd.7, %List %cast968 ) ; <%List> [#uses=1] + bitcast %List %reg968 to %IntList ; <%IntList>:5 [#uses=1] + store %IntList %5, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb88: ; preds = %bb58 - %reg318 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=4] - %cast9791 = getelementptr %YYSTYPE* %reg318, long -6, uint 0 ; <%IntList*> [#uses=1] + %reg318 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=4] + %cast9791 = getelementptr %YYSTYPE* %reg318, i64 -6, i32 0 ; <%IntList*> [#uses=1] %reg322 = load %IntList* %cast9791 ; <%IntList> [#uses=1] - %reg322 = cast %IntList %reg322 to sbyte* ; [#uses=1] - %reg323.idx1 = getelementptr %YYSTYPE* %reg318, long -4, uint 0 ; <%IntList*> [#uses=1] + %reg322.upgrd.8 = bitcast %IntList %reg322 to i8* ; [#uses=1] + %reg323.idx1 = getelementptr %YYSTYPE* %reg318, i64 -4, i32 0 ; <%IntList*> [#uses=1] %reg323 = load %IntList* %reg323.idx1 ; <%IntList> [#uses=1] - %reg987 = getelementptr %YYSTYPE* %reg318, long -2 ; <%YYSTYPE*> [#uses=1] - %cast989 = cast %YYSTYPE* %reg987 to int* ; [#uses=1] - %reg324 = load int* %cast989 ; [#uses=1] - %reg325.idx1 = getelementptr %YYSTYPE* %reg318, long -1, uint 0 ; <%IntList*> [#uses=1] + %reg987 = getelementptr %YYSTYPE* %reg318, i64 -2 ; <%YYSTYPE*> [#uses=1] + %cast989 = bitcast %YYSTYPE* %reg987 to i32* ; [#uses=1] + %reg324 = load i32* %cast989 ; [#uses=1] + %reg325.idx1 = getelementptr %YYSTYPE* %reg318, i64 -1, i32 0 ; <%IntList*> [#uses=1] %reg325 = load %IntList* %reg325.idx1 ; <%IntList> [#uses=1] - %cast998 = cast %IntList %reg323 to %PatternAST ; <%PatternAST> [#uses=1] - %reg996 = call %RuleAST %newRuleAST( sbyte* %reg322, %PatternAST %cast998, int %reg324, %IntList %reg325 ) ; <%RuleAST> [#uses=1] - cast %RuleAST %reg996 to %IntList ; <%IntList>:6 [#uses=1] - store %IntList %6, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %cast998 = bitcast %IntList %reg323 to %PatternAST ; <%PatternAST> [#uses=1] + %reg996 = call %RuleAST @newRuleAST( i8* %reg322.upgrd.8, %PatternAST %cast998, i32 %reg324, %IntList %reg325 ) ; <%RuleAST> [#uses=1] + bitcast %RuleAST %reg996 to %IntList ; <%IntList>:6 [#uses=1] + store %IntList %6, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb89: ; preds = %bb63 - %reg328 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=1] - %cast1002 = getelementptr %YYSTYPE* %reg328, long 0, uint 0 ; <%IntList*> [#uses=1] + %reg328 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1] + %cast1002 = getelementptr %YYSTYPE* %reg328, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg329 = load %IntList* %cast1002 ; <%IntList> [#uses=1] - %reg329 = cast %IntList %reg329 to sbyte* ; [#uses=1] - %reg1004 = call %PatternAST %newPatternAST( sbyte* %reg329, %List null ) ; <%PatternAST> [#uses=1] - cast %PatternAST %reg1004 to %IntList ; <%IntList>:7 [#uses=1] - store %IntList %7, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %reg329.upgrd.9 = bitcast %IntList %reg329 to i8* ; [#uses=1] + %reg1004 = call %PatternAST @newPatternAST( i8* %reg329.upgrd.9, %List null ) ; <%PatternAST> [#uses=1] + bitcast %PatternAST %reg1004 to %IntList ; <%IntList>:7 [#uses=1] + store %IntList %7, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb90: ; preds = %bb64 - %reg333 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %cast10131 = getelementptr %YYSTYPE* %reg333, long -1, uint 0 ; <%IntList*> [#uses=1] + %reg333 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %cast10131 = getelementptr %YYSTYPE* %reg333, i64 -1, i32 0 ; <%IntList*> [#uses=1] %reg335 = load %IntList* %cast10131 ; <%IntList> [#uses=1] - %reg335 = cast %IntList %reg335 to sbyte* ; [#uses=1] - %reg1015 = call %List %newList( sbyte* %reg335, %List null ) ; <%List> [#uses=1] - %cast10211 = getelementptr %YYSTYPE* %reg333, long -3, uint 0 ; <%IntList*> [#uses=1] + %reg335.upgrd.10 = bitcast %IntList %reg335 to i8* ; [#uses=1] + %reg1015 = call %List @newList( i8* %reg335.upgrd.10, %List null ) ; <%List> [#uses=1] + %cast10211 = getelementptr %YYSTYPE* %reg333, i64 -3, i32 0 ; <%IntList*> [#uses=1] %reg338 = load %IntList* %cast10211 ; <%IntList> [#uses=1] - %reg338 = cast %IntList %reg338 to sbyte* ; [#uses=1] - %reg1023 = call %PatternAST %newPatternAST( sbyte* %reg338, %List %reg1015 ) ; <%PatternAST> [#uses=1] - cast %PatternAST %reg1023 to %IntList ; <%IntList>:8 [#uses=1] - store %IntList %8, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %reg338.upgrd.11 = bitcast %IntList %reg338 to i8* ; [#uses=1] + %reg1023 = call %PatternAST @newPatternAST( i8* %reg338.upgrd.11, %List %reg1015 ) ; <%PatternAST> [#uses=1] + bitcast %PatternAST %reg1023 to %IntList ; <%IntList>:8 [#uses=1] + store %IntList %8, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb91: ; preds = %bb56 - %reg341 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=3] - %cast10331 = getelementptr %YYSTYPE* %reg341, long -1, uint 0 ; <%IntList*> [#uses=1] + %reg341 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=3] + %cast10331 = getelementptr %YYSTYPE* %reg341, i64 -1, i32 0 ; <%IntList*> [#uses=1] %reg344 = load %IntList* %cast10331 ; <%IntList> [#uses=1] - %reg344 = cast %IntList %reg344 to sbyte* ; [#uses=1] - %reg1035 = call %List %newList( sbyte* %reg344, %List null ) ; <%List> [#uses=1] - %cast10411 = getelementptr %YYSTYPE* %reg341, long -3, uint 0 ; <%IntList*> [#uses=1] + %reg344.upgrd.12 = bitcast %IntList %reg344 to i8* ; [#uses=1] + %reg1035 = call %List @newList( i8* %reg344.upgrd.12, %List null ) ; <%List> [#uses=1] + %cast10411 = getelementptr %YYSTYPE* %reg341, i64 -3, i32 0 ; <%IntList*> [#uses=1] %reg347 = load %IntList* %cast10411 ; <%IntList> [#uses=1] - %reg347 = cast %IntList %reg347 to sbyte* ; [#uses=1] - %reg1043 = call %List %newList( sbyte* %reg347, %List %reg1035 ) ; <%List> [#uses=1] - %cast10491 = getelementptr %YYSTYPE* %reg341, long -5, uint 0 ; <%IntList*> [#uses=1] + %reg347.upgrd.13 = bitcast %IntList %reg347 to i8* ; [#uses=1] + %reg1043 = call %List @newList( i8* %reg347.upgrd.13, %List %reg1035 ) ; <%List> [#uses=1] + %cast10491 = getelementptr %YYSTYPE* %reg341, i64 -5, i32 0 ; <%IntList*> [#uses=1] %reg349 = load %IntList* %cast10491 ; <%IntList> [#uses=1] - %reg349 = cast %IntList %reg349 to sbyte* ; [#uses=1] - %reg1051 = call %PatternAST %newPatternAST( sbyte* %reg349, %List %reg1043 ) ; <%PatternAST> [#uses=1] - cast %PatternAST %reg1051 to %IntList ; <%IntList>:9 [#uses=1] - store %IntList %9, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %reg349.upgrd.14 = bitcast %IntList %reg349 to i8* ; [#uses=1] + %reg1051 = call %PatternAST @newPatternAST( i8* %reg349.upgrd.14, %List %reg1043 ) ; <%PatternAST> [#uses=1] + bitcast %PatternAST %reg1051 to %IntList ; <%IntList>:9 [#uses=1] + store %IntList %9, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb92: ; preds = %bb68 - store %IntList null, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb93: ; preds = %bb69 - %reg354 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %reg1059 = getelementptr %YYSTYPE* %reg354, long -2 ; <%YYSTYPE*> [#uses=1] - %cast1061 = cast %YYSTYPE* %reg1059 to int* ; [#uses=1] - %reg356 = load int* %cast1061 ; [#uses=1] - %reg357.idx1 = getelementptr %YYSTYPE* %reg354, long -1, uint 0 ; <%IntList*> [#uses=1] + %reg354 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %reg1059 = getelementptr %YYSTYPE* %reg354, i64 -2 ; <%YYSTYPE*> [#uses=1] + %cast1061 = bitcast %YYSTYPE* %reg1059 to i32* ; [#uses=1] + %reg356 = load i32* %cast1061 ; [#uses=1] + %reg357.idx1 = getelementptr %YYSTYPE* %reg354, i64 -1, i32 0 ; <%IntList*> [#uses=1] %reg357 = load %IntList* %reg357.idx1 ; <%IntList> [#uses=1] - %reg1068 = call %IntList %newIntList( int %reg356, %IntList %reg357 ) ; <%IntList> [#uses=1] - store %IntList %reg1068, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %reg1068 = call %IntList @newIntList( i32 %reg356, %IntList %reg357 ) ; <%IntList> [#uses=1] + store %IntList %reg1068, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb94: ; preds = %bb66 - store %IntList null, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + store %IntList null, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb95: ; preds = %bb71 - %reg362 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %reg1076 = getelementptr %YYSTYPE* %reg362, long -1 ; <%YYSTYPE*> [#uses=1] - %cast1078 = cast %YYSTYPE* %reg1076 to int* ; [#uses=1] - %reg364 = load int* %cast1078 ; [#uses=1] - %reg365.idx = getelementptr %YYSTYPE* %reg362, long 0, uint 0 ; <%IntList*> [#uses=1] + %reg362 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %reg1076 = getelementptr %YYSTYPE* %reg362, i64 -1 ; <%YYSTYPE*> [#uses=1] + %cast1078 = bitcast %YYSTYPE* %reg1076 to i32* ; [#uses=1] + %reg364 = load i32* %cast1078 ; [#uses=1] + %reg365.idx = getelementptr %YYSTYPE* %reg362, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg365 = load %IntList* %reg365.idx ; <%IntList> [#uses=1] - %reg1081 = call %IntList %newIntList( int %reg364, %IntList %reg365 ) ; <%IntList> [#uses=1] - store %IntList %reg1081, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %reg1081 = call %IntList @newIntList( i32 %reg364, %IntList %reg365 ) ; <%IntList> [#uses=1] + store %IntList %reg1081, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb96: ; preds = %bb72 - %reg368 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %reg1088 = getelementptr %YYSTYPE* %reg368, long -1 ; <%YYSTYPE*> [#uses=1] - %cast1090 = cast %YYSTYPE* %reg1088 to int* ; [#uses=1] - %reg370 = load int* %cast1090 ; [#uses=1] - %reg371.idx = getelementptr %YYSTYPE* %reg368, long 0, uint 0 ; <%IntList*> [#uses=1] + %reg368 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %reg1088 = getelementptr %YYSTYPE* %reg368, i64 -1 ; <%YYSTYPE*> [#uses=1] + %cast1090 = bitcast %YYSTYPE* %reg1088 to i32* ; [#uses=1] + %reg370 = load i32* %cast1090 ; [#uses=1] + %reg371.idx = getelementptr %YYSTYPE* %reg368, i64 0, i32 0 ; <%IntList*> [#uses=1] %reg371 = load %IntList* %reg371.idx ; <%IntList> [#uses=1] - %reg1093 = call %IntList %newIntList( int %reg370, %IntList %reg371 ) ; <%IntList> [#uses=1] - store %IntList %reg1093, %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) + %reg1093 = call %IntList @newIntList( i32 %reg370, %IntList %reg371 ) ; <%IntList> [#uses=1] + store %IntList %reg1093, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) br label %bb97 bb97: ; preds = %bb96, %bb95, %bb94, %bb93, %bb92, %bb91, %bb90, %bb89, %bb88, %bb87, %bb86, %bb85, %bb84, %bb83, %bb82, %bb81, %bb80, %bb79, %bb78, %bb77, %bb76, %bb75, %bb74, %bb72, %bb69, %bb64, %bb61, %bb54, %bb51, %bb46, %bb43 - %cast1097 = cast short %reg254 to ulong ; [#uses=3] - %reg375 = add ulong %cast1097, %cast1097 ; [#uses=1] - %reg377 = load short** %yyssp ; [#uses=1] - %cast379 = cast short* %reg377 to ulong ; [#uses=1] - %reg381 = sub ulong %cast379, %reg375 ; [#uses=1] - %cast1099 = cast ulong %reg381 to short* ; [#uses=1] - store short* %cast1099, short** %yyssp - %reg382 = load short** %yyssp ; [#uses=3] - %reg383 = load short* %reg382 ; [#uses=1] - %cast1103 = cast short %reg383 to int ; [#uses=3] - %reg385 = mul ulong %cast1097, 8 ; [#uses=1] - %reg387 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=1] - %cast389 = cast %YYSTYPE* %reg387 to ulong ; [#uses=1] - %reg391 = sub ulong %cast389, %reg385 ; [#uses=1] - %cast1108 = cast ulong %reg391 to %YYSTYPE* ; <%YYSTYPE*> [#uses=1] - store %YYSTYPE* %cast1108, %YYSTYPE** %yyvsp - %reg1111 = getelementptr [25 x short]* %yylhs, long 0, long %reg468-idxcast ; [#uses=1] - %reg398 = load short* %reg1111 ; [#uses=2] - %cast1116 = cast short %reg398 to int ; [#uses=1] - %cond1117 = setne int %cast1103, 0 ; [#uses=1] - br bool %cond1117, label %bb104, label %bb98 + %cast1097 = sext i16 %reg254 to i64 ; [#uses=3] + %reg375 = add i64 %cast1097, %cast1097 ; [#uses=1] + %reg377 = load i16** @yyssp ; [#uses=1] + %cast379 = ptrtoint i16* %reg377 to i64 ; [#uses=1] + %reg381 = sub i64 %cast379, %reg375 ; [#uses=1] + %cast1099 = inttoptr i64 %reg381 to i16* ; [#uses=1] + store i16* %cast1099, i16** @yyssp + %reg382 = load i16** @yyssp ; [#uses=3] + %reg383 = load i16* %reg382 ; [#uses=1] + %cast1103 = sext i16 %reg383 to i32 ; [#uses=3] + %reg385 = mul i64 %cast1097, 8 ; [#uses=1] + %reg387 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=1] + %cast389 = ptrtoint %YYSTYPE* %reg387 to i64 ; [#uses=1] + %reg391 = sub i64 %cast389, %reg385 ; [#uses=1] + %cast1108 = inttoptr i64 %reg391 to %YYSTYPE* ; <%YYSTYPE*> [#uses=1] + store %YYSTYPE* %cast1108, %YYSTYPE** @yyvsp + %reg1111 = getelementptr [25 x i16]* @yylhs, i64 0, i64 %reg468-idxcast ; [#uses=1] + %reg398 = load i16* %reg1111 ; [#uses=2] + %cast1116 = sext i16 %reg398 to i32 ; [#uses=1] + %cond1117 = icmp ne i32 %cast1103, 0 ; [#uses=1] + br i1 %cond1117, label %bb104, label %bb98 bb98: ; preds = %bb97 - %cond1119 = setne int %cast1116, 0 ; [#uses=1] - br bool %cond1119, label %bb104, label %bb99 + %cond1119 = icmp ne i32 %cast1116, 0 ; [#uses=1] + br i1 %cond1119, label %bb104, label %bb99 bb99: ; preds = %bb98 - %reg1122 = getelementptr short* %reg382, long 1 ; [#uses=2] - store short* %reg1122, short** %yyssp - store short 1, short* %reg1122 - %reg403 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %reg1128 = getelementptr %YYSTYPE* %reg403, long 1 ; <%YYSTYPE*> [#uses=1] - store %YYSTYPE* %reg1128, %YYSTYPE** %yyvsp - %reg406 = load %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) ; <%IntList> [#uses=1] - %reg1128.idx1 = getelementptr %YYSTYPE* %reg403, long 1, uint 0 ; <%IntList*> [#uses=1] + %reg1122 = getelementptr i16* %reg382, i64 1 ; [#uses=2] + store i16* %reg1122, i16** @yyssp + store i16 1, i16* %reg1122 + %reg403 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %reg1128 = getelementptr %YYSTYPE* %reg403, i64 1 ; <%YYSTYPE*> [#uses=1] + store %YYSTYPE* %reg1128, %YYSTYPE** @yyvsp + %reg406 = load %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) ; <%IntList> [#uses=1] + %reg1128.idx1 = getelementptr %YYSTYPE* %reg403, i64 1, i32 0 ; <%IntList*> [#uses=1] store %IntList %reg406, %IntList* %reg1128.idx1 - %reg407 = load int* %yychar ; [#uses=1] - %cond1135 = setge int %reg407, 0 ; [#uses=1] - br bool %cond1135, label %bb102, label %bb100 + %reg407 = load i32* @yychar ; [#uses=1] + %cond1135 = icmp sge i32 %reg407, 0 ; [#uses=1] + br i1 %cond1135, label %bb102, label %bb100 bb100: ; preds = %bb99 - %reg1139 = call int %yylex( ) ; [#uses=1] - store int %reg1139, int* %yychar - %reg409 = load int* %yychar ; [#uses=1] - %cond1141 = setge int %reg409, 0 ; [#uses=1] - br bool %cond1141, label %bb102, label %bb101 + %reg1139 = call i32 @yylex( ) ; [#uses=1] + store i32 %reg1139, i32* @yychar + %reg409 = load i32* @yychar ; [#uses=1] + %cond1141 = icmp sge i32 %reg409, 0 ; [#uses=1] + br i1 %cond1141, label %bb102, label %bb101 bb101: ; preds = %bb100 - store int 0, int* %yychar + store i32 0, i32* @yychar br label %bb102 bb102: ; preds = %bb101, %bb100, %bb99 - %reg411 = load int* %yychar ; [#uses=1] - %cond1146 = setne int %reg411, 0 ; [#uses=1] - br bool %cond1146, label %bb4, label %UnifiedExitNode + %reg411 = load i32* @yychar ; [#uses=1] + %cond1146 = icmp ne i32 %reg411, 0 ; [#uses=1] + br i1 %cond1146, label %bb4, label %UnifiedExitNode bb104: ; preds = %bb98, %bb97 - %reg398-idxcast = cast short %reg398 to long ; [#uses=2] - %reg1150 = getelementptr [12 x short]* %yygindex, long 0, long %reg398-idxcast ; [#uses=1] - %reg418 = load short* %reg1150 ; [#uses=1] - %cast1155 = cast short %reg418 to int ; [#uses=2] - %cond1156 = seteq int %cast1155, 0 ; [#uses=1] - br bool %cond1156, label %bb109, label %bb105 + %reg398-idxcast = sext i16 %reg398 to i64 ; [#uses=2] + %reg1150 = getelementptr [12 x i16]* @yygindex, i64 0, i64 %reg398-idxcast ; [#uses=1] + %reg418 = load i16* %reg1150 ; [#uses=1] + %cast1155 = sext i16 %reg418 to i32 ; [#uses=2] + %cond1156 = icmp eq i32 %cast1155, 0 ; [#uses=1] + br i1 %cond1156, label %bb109, label %bb105 bb105: ; preds = %bb104 - %reg473 = add int %cast1155, %cast1103 ; [#uses=3] - %cond1158 = setlt int %reg473, 0 ; [#uses=1] - br bool %cond1158, label %bb109, label %bb106 + %reg473 = add i32 %cast1155, %cast1103 ; [#uses=3] + %cond1158 = icmp slt i32 %reg473, 0 ; [#uses=1] + br i1 %cond1158, label %bb109, label %bb106 bb106: ; preds = %bb105 - %cond1161 = setgt int %reg473, 262 ; [#uses=1] - br bool %cond1161, label %bb109, label %bb107 + %cond1161 = icmp sgt i32 %reg473, 262 ; [#uses=1] + br i1 %cond1161, label %bb109, label %bb107 bb107: ; preds = %bb106 - %reg473-idxcast = cast int %reg473 to long ; [#uses=2] - %reg1166 = getelementptr [263 x short]* %yycheck, long 0, long %reg473-idxcast ; [#uses=1] - %reg428 = load short* %reg1166 ; [#uses=1] - %cast1171 = cast short %reg428 to int ; [#uses=1] - %cond1172 = setne int %cast1171, %cast1103 ; [#uses=1] - br bool %cond1172, label %bb109, label %bb108 + %reg473-idxcast = sext i32 %reg473 to i64 ; [#uses=2] + %reg1166 = getelementptr [263 x i16]* @yycheck, i64 0, i64 %reg473-idxcast ; [#uses=1] + %reg428 = load i16* %reg1166 ; [#uses=1] + %cast1171 = sext i16 %reg428 to i32 ; [#uses=1] + %cond1172 = icmp ne i32 %cast1171, %cast1103 ; [#uses=1] + br i1 %cond1172, label %bb109, label %bb108 bb108: ; preds = %bb107 - %reg1175 = getelementptr [263 x short]* %yytable, long 0, long %reg473-idxcast ; [#uses=1] - %reg435 = load short* %reg1175 ; [#uses=1] - %cast1180 = cast short %reg435 to uint ; [#uses=1] + %reg1175 = getelementptr [263 x i16]* @yytable, i64 0, i64 %reg473-idxcast ; [#uses=1] + %reg435 = load i16* %reg1175 ; [#uses=1] + %cast1180 = sext i16 %reg435 to i32 ; [#uses=1] br label %bb110 bb109: ; preds = %bb107, %bb106, %bb105, %bb104 - %reg1183 = getelementptr [12 x short]* %yydgoto, long 0, long %reg398-idxcast ; [#uses=1] - %reg442 = load short* %reg1183 ; [#uses=1] - %cast1188 = cast short %reg442 to uint ; [#uses=1] + %reg1183 = getelementptr [12 x i16]* @yydgoto, i64 0, i64 %reg398-idxcast ; [#uses=1] + %reg442 = load i16* %reg1183 ; [#uses=1] + %cast1188 = sext i16 %reg442 to i32 ; [#uses=1] br label %bb110 bb110: ; preds = %bb109, %bb108 - %reg476 = phi uint [ %cast1188, %bb109 ], [ %cast1180, %bb108 ] ; [#uses=2] - %cast1189 = cast short* %reg382 to sbyte* ; [#uses=1] - %reg444 = load short** %yysslim ; [#uses=1] - %cast1190 = cast short* %reg444 to sbyte* ; [#uses=1] - %cond1191 = setlt sbyte* %cast1189, %cast1190 ; [#uses=1] - br bool %cond1191, label %bb112, label %bb111 + %reg476 = phi i32 [ %cast1188, %bb109 ], [ %cast1180, %bb108 ] ; [#uses=2] + %cast1189 = bitcast i16* %reg382 to i8* ; [#uses=1] + %reg444 = load i16** @yysslim ; [#uses=1] + %cast1190 = bitcast i16* %reg444 to i8* ; [#uses=1] + %cond1191 = icmp ult i8* %cast1189, %cast1190 ; [#uses=1] + br i1 %cond1191, label %bb112, label %bb111 bb111: ; preds = %bb110 - %reg1193 = call int %yygrowstack( ) ; [#uses=1] - %cond1193 = setne int %reg1193, 0 ; [#uses=1] - br bool %cond1193, label %bb113, label %bb112 + %reg1193 = call i32 @yygrowstack( ) ; [#uses=1] + %cond1193 = icmp ne i32 %reg1193, 0 ; [#uses=1] + br i1 %cond1193, label %bb113, label %bb112 bb112: ; preds = %bb111, %bb110 - %reg446 = load short** %yyssp ; [#uses=1] - %reg1196 = getelementptr short* %reg446, long 1 ; [#uses=2] - store short* %reg1196, short** %yyssp - %cast1357 = cast uint %reg476 to short ; [#uses=1] - store short %cast1357, short* %reg1196 - %reg449 = load %YYSTYPE** %yyvsp ; <%YYSTYPE*> [#uses=2] - %reg1202 = getelementptr %YYSTYPE* %reg449, long 1 ; <%YYSTYPE*> [#uses=1] - store %YYSTYPE* %reg1202, %YYSTYPE** %yyvsp - %reg452 = load %IntList* getelementptr (%YYSTYPE* %yyval, long 0, uint 0) ; <%IntList> [#uses=1] - %reg1202.idx1 = getelementptr %YYSTYPE* %reg449, long 1, uint 0 ; <%IntList*> [#uses=1] + %reg446 = load i16** @yyssp ; [#uses=1] + %reg1196 = getelementptr i16* %reg446, i64 1 ; [#uses=2] + store i16* %reg1196, i16** @yyssp + %cast1357 = trunc i32 %reg476 to i16 ; [#uses=1] + store i16 %cast1357, i16* %reg1196 + %reg449 = load %YYSTYPE** @yyvsp ; <%YYSTYPE*> [#uses=2] + %reg1202 = getelementptr %YYSTYPE* %reg449, i64 1 ; <%YYSTYPE*> [#uses=1] + store %YYSTYPE* %reg1202, %YYSTYPE** @yyvsp + %reg452 = load %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0) ; <%IntList> [#uses=1] + %reg1202.idx1 = getelementptr %YYSTYPE* %reg449, i64 1, i32 0 ; <%IntList*> [#uses=1] store %IntList %reg452, %IntList* %reg1202.idx1 br label %bb4 bb113: ; preds = %bb111, %bb30, %bb13, %bb2 - call void %yyerror( sbyte* getelementptr ([20 x sbyte]* %.LC1, long 0, long 0) ) + call void @yyerror( i8* getelementptr ([20 x i8]* @.LC1, i64 0, i64 0) ) br label %UnifiedExitNode UnifiedExitNode: ; preds = %bb113, %bb102, %bb34, %bb32 - %UnifiedRetVal = phi int [ 1, %bb113 ], [ 1, %bb34 ], [ 1, %bb32 ], [ 0, %bb102 ] ; [#uses=1] - ret int %UnifiedRetVal + %UnifiedRetVal = phi i32 [ 1, %bb113 ], [ 1, %bb34 ], [ 1, %bb32 ], [ 0, %bb102 ] ; [#uses=1] + ret i32 %UnifiedRetVal } -declare %List %newList(sbyte*, %List) +declare %List @newList(i8*, %List) -declare %IntList %newIntList(int, %IntList) +declare %IntList @newIntList(i32, %IntList) -declare void %doStart(sbyte*) +declare void @doStart(i8*) -declare void %yyerror(sbyte*) +declare void @yyerror(i8*) -declare void %doSpec(%List, %List) +declare void @doSpec(%List, %List) -declare %Arity %newArity(int, %List) +declare %Arity @newArity(i32, %List) -declare %Binding %newBinding(sbyte*, int) +declare %Binding @newBinding(i8*, i32) -declare %PatternAST %newPatternAST(sbyte*, %List) +declare %PatternAST @newPatternAST(i8*, %List) -declare %RuleAST %newRuleAST(sbyte*, %PatternAST, int, %IntList) +declare %RuleAST @newRuleAST(i8*, %PatternAST, i32, %IntList) -declare void %yyfinished() +declare void @yyfinished() -declare int %yylex() +declare i32 @yylex() -declare void %doGram(%List) +declare void @doGram(%List) -declare int %yygrowstack() +declare i32 @yygrowstack() diff --git a/test/CodeGen/Generic/ConstantExprLowering.llx b/test/CodeGen/Generic/ConstantExprLowering.llx index afb6530..d265415 100644 --- a/test/CodeGen/Generic/ConstantExprLowering.llx +++ b/test/CodeGen/Generic/ConstantExprLowering.llx @@ -1,26 +1,22 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -%.str_1 = internal constant [16 x sbyte] c"%d %d %d %d %d\0A\00" +@.str_1 = internal constant [16 x i8] c"%d %d %d %d %d\0A\00" ; <[16 x i8]*> [#uses=1] +@XA = external global i32 ; [#uses=1] +@XB = external global i32 ; [#uses=1] -%XA = external global int -%XB = external global int +declare i32 @printf(i8*, ...) -implementation ; Functions: - -declare int %printf(sbyte*, ...) - -void %test(int %A, int %B, int %C, int %D) { +define void @test(i32 %A, i32 %B, i32 %C, i32 %D) { entry: - %t1 = setlt int %A, 0 - br bool %t1, label %less, label %not_less -less: + %t1 = icmp slt i32 %A, 0 ; [#uses=1] + br i1 %t1, label %less, label %not_less + +less: ; preds = %entry br label %not_less -not_less: - %t2 = phi int [ sub ( int cast (int* %XA to int), - int cast (int* %XB to int) ), %less], - [ sub ( int cast (int* %XA to int), - int cast (int* %XB to int) ), %entry] - %tmp.39 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([16 x sbyte]* %.str_1, long 0, long 0), int %t2 ) - ret void + +not_less: ; preds = %less, %entry + %t2 = phi i32 [ sub (i32 ptrtoint (i32* @XA to i32), i32 ptrtoint (i32* @XB to i32)), %less ], [ sub (i32 ptrtoint (i32* @XA to i32), i32 ptrtoint (i32* @XB to i32)), %entry ] ; [#uses=1] + %tmp.39 = call i32 (i8*, ...)* @printf( i8* getelementptr ([16 x i8]* @.str_1, i64 0, i64 0), i32 %t2 ) ; [#uses=0] + ret void } diff --git a/test/CodeGen/Generic/SwitchLowering.ll b/test/CodeGen/Generic/SwitchLowering.ll index a8c14f1..9fdfd8d 100644 --- a/test/CodeGen/Generic/SwitchLowering.ll +++ b/test/CodeGen/Generic/SwitchLowering.ll @@ -1,27 +1,28 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep cmp | count 1 +; RUN: llvm-as < %s | llc -march=x86 | grep cmp | count 1 ; PR964 -sbyte* %FindChar(sbyte* %CurPtr) { +define i8* @FindChar(i8* %CurPtr) { entry: - br label %bb + br label %bb -bb: ; preds = %bb, %entry - %indvar = phi uint [ 0, %entry ], [ %indvar.next, %bb ] ; [#uses=3] - %CurPtr_addr.0.rec = cast uint %indvar to int ; [#uses=1] - %CurPtr_addr.0 = getelementptr sbyte* %CurPtr, uint %indvar ; [#uses=1] - %tmp = load sbyte* %CurPtr_addr.0 ; [#uses=2] - %tmp2.rec = add int %CurPtr_addr.0.rec, 1 ; [#uses=1] - %tmp2 = getelementptr sbyte* %CurPtr, int %tmp2.rec ; [#uses=1] - %indvar.next = add uint %indvar, 1 ; [#uses=1] - switch sbyte %tmp, label %bb [ - sbyte 0, label %bb7 - sbyte 120, label %bb7 - ] +bb: ; preds = %bb, %entry + %indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb ] ; [#uses=3] + %CurPtr_addr.0.rec = bitcast i32 %indvar to i32 ; [#uses=1] + %gep.upgrd.1 = zext i32 %indvar to i64 ; [#uses=1] + %CurPtr_addr.0 = getelementptr i8* %CurPtr, i64 %gep.upgrd.1 ; [#uses=1] + %tmp = load i8* %CurPtr_addr.0 ; [#uses=3] + %tmp2.rec = add i32 %CurPtr_addr.0.rec, 1 ; [#uses=1] + %tmp2 = getelementptr i8* %CurPtr, i32 %tmp2.rec ; [#uses=1] + %indvar.next = add i32 %indvar, 1 ; [#uses=1] + switch i8 %tmp, label %bb [ + i8 0, label %bb7 + i8 120, label %bb7 + ] -bb7: ; preds = %bb, %bb - %tmp = cast sbyte %tmp to ubyte ; [#uses=1] - tail call void %foo( ubyte %tmp ) - ret sbyte* %tmp2 +bb7: ; preds = %bb, %bb + tail call void @foo( i8 %tmp ) + ret i8* %tmp2 } -declare void %foo(ubyte) +declare void @foo(i8) + diff --git a/test/CodeGen/Generic/badCallArgLRLLVM.ll b/test/CodeGen/Generic/badCallArgLRLLVM.ll index 734d2b2..5638474 100644 --- a/test/CodeGen/Generic/badCallArgLRLLVM.ll +++ b/test/CodeGen/Generic/badCallArgLRLLVM.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ; This caused a problem because the argument of a call was defined by ; the return value of another call that appears later in the code. @@ -8,25 +8,24 @@ ; llc dies in UltraSparcRegInfo::suggestRegs4CallArgs() with: ; ERROR: In call instr, no LR for arg: 0x1009e0740 ; -implementation ; Functions: -declare int %getInt(int) +declare i32 @getInt(i32) -int %main(int %argc, sbyte** %argv) { -bb0: ;[#uses=0] +define i32 @main(i32 %argc, i8** %argv) { +bb0: br label %bb2 -bb1: - %reg222 = call int (int)* %getInt(int %reg218) ;; ARG #1 HAS NO LR - %reg110 = add int %reg222, 1 - %b = setle int %reg110, 0 - br bool %b, label %bb2, label %bb3 +bb1: ; preds = %bb2 + %reg222 = call i32 @getInt( i32 %reg218 ) ; [#uses=1] + %reg110 = add i32 %reg222, 1 ; [#uses=2] + %b = icmp sle i32 %reg110, 0 ; [#uses=1] + br i1 %b, label %bb2, label %bb3 -bb2: - %reg218 = call int (int)* %getInt(int %argc) ;; THIS CALL NOT YET SEEN - br label %bb1 +bb2: ; preds = %bb1, %bb0 + %reg218 = call i32 @getInt( i32 %argc ) ; [#uses=1] + br label %bb1 -bb3: - ret int %reg110 +bb3: ; preds = %bb1 + ret i32 %reg110 } diff --git a/test/CodeGen/Generic/badFoldGEP.ll b/test/CodeGen/Generic/badFoldGEP.ll index 63acd46..8de1251 100644 --- a/test/CodeGen/Generic/badFoldGEP.ll +++ b/test/CodeGen/Generic/badFoldGEP.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; GetMemInstArgs() folded the two getElementPtr instructions together, ;; producing an illegal getElementPtr. That's because the type generated @@ -10,20 +10,18 @@ ;; file post_process.c, function build_domain(). ;; (Modified to replace store with load and return load value.) ;; + %Domain = type { i8*, i32, i32*, i32, i32, i32*, %Domain* } +@domain_array = external global [497 x %Domain] ; <[497 x %Domain]*> [#uses=2] -%Domain = type { sbyte*, int, int*, int, int, int*, %Domain* } -%domain_array = uninitialized global [497 x %Domain] +declare void @opaque([497 x %Domain]*) -implementation; Functions: - -declare void %opaque([497 x %Domain]*) - -int %main(int %argc, sbyte** %argv) { -bb0: ;[#uses=0] - call void %opaque([497 x %Domain]* %domain_array) - %cann-indvar-idxcast = cast int %argc to long - %reg841 = getelementptr [497 x %Domain]* %domain_array, long 0, long %cann-indvar-idxcast, uint 3 - %reg846 = getelementptr int* %reg841, long 1 - %reg820 = load int* %reg846 - ret int %reg820 +define i32 @main(i32 %argc, i8** %argv) { +bb0: + call void @opaque( [497 x %Domain]* @domain_array ) + %cann-indvar-idxcast = sext i32 %argc to i64 ; [#uses=1] + %reg841 = getelementptr [497 x %Domain]* @domain_array, i64 0, i64 %cann-indvar-idxcast, i32 3 ; [#uses=1] + %reg846 = getelementptr i32* %reg841, i64 1 ; [#uses=1] + %reg820 = load i32* %reg846 ; [#uses=1] + ret i32 %reg820 } + diff --git a/test/CodeGen/Generic/badarg6.ll b/test/CodeGen/Generic/badarg6.ll index 542e6b3..1ff7df4 100644 --- a/test/CodeGen/Generic/badarg6.ll +++ b/test/CodeGen/Generic/badarg6.ll @@ -1,38 +1,32 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ; On this code, llc did not pass the sixth argument (%reg321) to printf. ; It passed the first five in %o0 - %o4, but never initialized %o5. +@.LC12 = internal global [44 x i8] c"\09\09M = %g, I = %g, V = %g\0A\09\09O = %g, E = %g\0A\0A\00" ; <[44 x i8]*> [#uses=1] -%.LC12 = internal global [44 x sbyte] c"\09\09M = %g, I = %g, V = %g\0A\09\09O = %g, E = %g\0A\0A\00" ; <[44 x sbyte]*> +declare i32 @printf(i8*, ...) -implementation; - -declare int %printf(sbyte*, ...) - -declare double %opaque(double) - -int %main(int %argc, sbyte** %argv) { +declare double @opaque(double) +define i32 @main(i32 %argc, i8** %argv) { bb25: - %b = setle int %argc, 2 - br bool %b, label %bb42, label %bb43 - -bb42: - %reg315 = call double (double)* %opaque(double 3.0) - %reg316 = call double (double)* %opaque(double 3.1) - %reg317 = call double (double)* %opaque(double 3.2) - %reg318 = call double (double)* %opaque(double 3.3) - %reg319 = call double (double)* %opaque(double 3.4) + %b = icmp sle i32 %argc, 2 ; [#uses=1] + br i1 %b, label %bb42, label %bb43 + +bb42: ; preds = %bb25 + %reg315 = call double @opaque( double 3.000000e+00 ) ; [#uses=1] + %reg316 = call double @opaque( double 3.100000e+00 ) ; [#uses=1] + %reg317 = call double @opaque( double 3.200000e+00 ) ; [#uses=1] + %reg318 = call double @opaque( double 3.300000e+00 ) ; [#uses=1] + %reg319 = call double @opaque( double 3.400000e+00 ) ; [#uses=1] br label %bb43 -bb43: - %reg321 = phi double [ 2.000000e-01, %bb25 ], [ %reg315, %bb42 ] - %reg322 = phi double [ 6.000000e+00, %bb25 ], [ %reg316, %bb42 ] - %reg323 = phi double [ 0xBFF0000000000000, %bb25 ], [ %reg317, %bb42 ] - %reg324 = phi double [ 0xBFF0000000000000, %bb25 ], [ %reg318, %bb42 ] - %reg325 = phi double [ 1.000000e+00, %bb25 ], [ %reg319, %bb42 ] - - %reg609 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([44 x sbyte]* %.LC12, long 0, long 0), double %reg325, double %reg324, double %reg323, double %reg322, double %reg321 ) - - ret int 0 +bb43: ; preds = %bb42, %bb25 + %reg321 = phi double [ 2.000000e-01, %bb25 ], [ %reg315, %bb42 ] ; [#uses=1] + %reg322 = phi double [ 6.000000e+00, %bb25 ], [ %reg316, %bb42 ] ; [#uses=1] + %reg323 = phi double [ -1.000000e+00, %bb25 ], [ %reg317, %bb42 ] ; [#uses=1] + %reg324 = phi double [ -1.000000e+00, %bb25 ], [ %reg318, %bb42 ] ; [#uses=1] + %reg325 = phi double [ 1.000000e+00, %bb25 ], [ %reg319, %bb42 ] ; [#uses=1] + %reg609 = call i32 (i8*, ...)* @printf( i8* getelementptr ([44 x i8]* @.LC12, i64 0, i64 0), double %reg325, double %reg324, double %reg323, double %reg322, double %reg321 ) ; [#uses=0] + ret i32 0 } diff --git a/test/CodeGen/Generic/badlive.ll b/test/CodeGen/Generic/badlive.ll index 8c08153..0114fb0 100644 --- a/test/CodeGen/Generic/badlive.ll +++ b/test/CodeGen/Generic/badlive.ll @@ -1,30 +1,28 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -implementation - -int "main"() -begin +define i32 @main() { bb0: - %reg109 = malloc int, uint 100 - br label %bb2 + %reg109 = malloc i32, i32 100 ; [#uses=2] + br label %bb2 + +bb2: ; preds = %bb2, %bb0 + %cann-indvar1 = phi i32 [ 0, %bb0 ], [ %add1-indvar1, %bb2 ] ; [#uses=2] + %reg127 = mul i32 %cann-indvar1, 2 ; [#uses=1] + %add1-indvar1 = add i32 %cann-indvar1, 1 ; [#uses=1] + store i32 999, i32* %reg109 + %cond1015 = icmp sle i32 1, 99 ; [#uses=1] + %reg128 = add i32 %reg127, 2 ; [#uses=0] + br i1 %cond1015, label %bb2, label %bb4 -bb2: - %cann-indvar1 = phi int [ 0, %bb0 ], [ %add1-indvar1, %bb2 ] - %reg127 = mul int %cann-indvar1, 2 - %add1-indvar1 = add int %cann-indvar1, 1 - store int 999, int * %reg109 - %cond1015 = setle int 1, 99 - %reg128 = add int %reg127, 2 - br bool %cond1015, label %bb2, label %bb4 +bb4: ; preds = %bb4, %bb2 + %cann-indvar = phi i32 [ %add1-indvar, %bb4 ], [ 0, %bb2 ] ; [#uses=1] + %add1-indvar = add i32 %cann-indvar, 1 ; [#uses=2] + store i32 333, i32* %reg109 + %reg131 = add i32 %add1-indvar, 3 ; [#uses=1] + %cond1017 = icmp ule i32 %reg131, 99 ; [#uses=1] + br i1 %cond1017, label %bb4, label %bb5 -bb4: ;[#uses=3] - %cann-indvar = phi uint [ %add1-indvar, %bb4 ], [ 0, %bb2 ] - %add1-indvar = add uint %cann-indvar, 1 ; [#uses=1] - store int 333, int * %reg109 - %reg131 = add uint %add1-indvar, 3 ; [#uses=1] - %cond1017 = setle uint %reg131, 99 ; [#uses=1] - br bool %cond1017, label %bb4, label %bb5 +bb5: ; preds = %bb4 + ret i32 0 +} -bb5: - ret int 0 -end diff --git a/test/CodeGen/Generic/bool-to-double.ll b/test/CodeGen/Generic/bool-to-double.ll index ad9bc8e..d6c9e52 100644 --- a/test/CodeGen/Generic/bool-to-double.ll +++ b/test/CodeGen/Generic/bool-to-double.ll @@ -1,5 +1,6 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -double %test(bool %X) { - %Y = cast bool %X to double +; RUN: llvm-as < %s | llc +define double @test(i1 %X) { + %Y = uitofp i1 %X to double ; [#uses=1] ret double %Y } + diff --git a/test/CodeGen/Generic/call-ret0.ll b/test/CodeGen/Generic/call-ret0.ll index 44c30d3..7ab966b 100644 --- a/test/CodeGen/Generic/call-ret0.ll +++ b/test/CodeGen/Generic/call-ret0.ll @@ -1,10 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc - -int %foo(int %x) { - ret int %x +; RUN: llvm-as < %s | llc +define i32 @foo(i32 %x) { + ret i32 %x } -int %main() { - %r = call int %foo(int 0) - ret int %r +define i32 @main() { + %r = call i32 @foo( i32 0 ) ; [#uses=1] + ret i32 %r } + diff --git a/test/CodeGen/Generic/call-ret42.ll b/test/CodeGen/Generic/call-ret42.ll index b0a480f..ac9bd92 100644 --- a/test/CodeGen/Generic/call-ret42.ll +++ b/test/CodeGen/Generic/call-ret42.ll @@ -1,10 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -int %foo(int %x) { - ret int 42 +define i32 @foo(i32 %x) { + ret i32 42 } -int %main() { - %r = call int %foo(int 15) - ret int %r +define i32 @main() { + %r = call i32 @foo( i32 15 ) ; [#uses=1] + ret i32 %r } diff --git a/test/CodeGen/Generic/call-void.ll b/test/CodeGen/Generic/call-void.ll index 64e6336..b882689 100644 --- a/test/CodeGen/Generic/call-void.ll +++ b/test/CodeGen/Generic/call-void.ll @@ -1,10 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -void %foo() { - ret void +define void @foo() { + ret void } -int %main() { - call void ()* %foo() - ret int 0 +define i32 @main() { + call void @foo( ) + ret i32 0 } + diff --git a/test/CodeGen/Generic/call2-ret0.ll b/test/CodeGen/Generic/call2-ret0.ll index 55be5c6..8c7e892 100644 --- a/test/CodeGen/Generic/call2-ret0.ll +++ b/test/CodeGen/Generic/call2-ret0.ll @@ -1,15 +1,16 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -int %bar(int %x) { - ret int 0 +define i32 @bar(i32 %x) { + ret i32 0 } -int %foo(int %x) { - %q = call int %bar(int 1) - ret int %q +define i32 @foo(i32 %x) { + %q = call i32 @bar( i32 1 ) ; [#uses=1] + ret i32 %q } -int %main() { - %r = call int %foo(int 2) - ret int %r +define i32 @main() { + %r = call i32 @foo( i32 2 ) ; [#uses=1] + ret i32 %r } + diff --git a/test/CodeGen/Generic/cast-fp.ll b/test/CodeGen/Generic/cast-fp.ll index 8359329..5f05d85 100644 --- a/test/CodeGen/Generic/cast-fp.ll +++ b/test/CodeGen/Generic/cast-fp.ll @@ -1,49 +1,33 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc - -%a_fstr = internal constant [8 x sbyte] c"a = %f\0A\00" -%a_lstr = internal constant [10 x sbyte] c"a = %lld\0A\00" -%a_dstr = internal constant [8 x sbyte] c"a = %d\0A\00" - -%b_dstr = internal constant [8 x sbyte] c"b = %d\0A\00" -%b_fstr = internal constant [8 x sbyte] c"b = %f\0A\00" - -declare int %printf(sbyte*, ...) -%A = global double 2.0 -%B = global int 2 - -int %main() { - ;; A - %a = load double* %A - %a_fs = getelementptr [8 x sbyte]* %a_fstr, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %a_fs, double %a) - - ;; cast double to long - %a_d2l = cast double %a to long - %a_ls = getelementptr [10 x sbyte]* %a_lstr, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %a_ls, long %a_d2l) - - ;; cast double to int - %a_d2i = cast double %a to int - %a_ds = getelementptr [8 x sbyte]* %a_dstr, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %a_ds, int %a_d2i) - - ;; cast double to sbyte - %a_d2sb = cast double %a to sbyte - call int (sbyte*, ...)* %printf(sbyte* %a_ds, sbyte %a_d2sb) - - ;; cast int to sbyte - %a_d2i2sb = cast int %a_d2i to sbyte - call int (sbyte*, ...)* %printf(sbyte* %a_ds, sbyte %a_d2i2sb) - - ;; B - %b = load int* %B - %b_ds = getelementptr [8 x sbyte]* %b_dstr, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %b_ds, int %b) - - ;; cast int to double - %b_i2d = cast int %b to double - %b_fs = getelementptr [8 x sbyte]* %b_fstr, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %b_fs, double %b_i2d) - - ret int 0 +; RUN: llvm-as < %s | llc +@a_fstr = internal constant [8 x i8] c"a = %f\0A\00" ; <[8 x i8]*> [#uses=1] +@a_lstr = internal constant [10 x i8] c"a = %lld\0A\00" ; <[10 x i8]*> [#uses=1] +@a_dstr = internal constant [8 x i8] c"a = %d\0A\00" ; <[8 x i8]*> [#uses=1] +@b_dstr = internal constant [8 x i8] c"b = %d\0A\00" ; <[8 x i8]*> [#uses=1] +@b_fstr = internal constant [8 x i8] c"b = %f\0A\00" ; <[8 x i8]*> [#uses=1] +@A = global double 2.000000e+00 ; [#uses=1] +@B = global i32 2 ; [#uses=1] + +declare i32 @printf(i8*, ...) + +define i32 @main() { + %a = load double* @A ; [#uses=4] + %a_fs = getelementptr [8 x i8]* @a_fstr, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_fs, double %a ) ; :1 [#uses=0] + %a_d2l = fptosi double %a to i64 ; [#uses=1] + %a_ls = getelementptr [10 x i8]* @a_lstr, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_ls, i64 %a_d2l ) ; :2 [#uses=0] + %a_d2i = fptosi double %a to i32 ; [#uses=2] + %a_ds = getelementptr [8 x i8]* @a_dstr, i64 0, i64 0 ; [#uses=3] + call i32 (i8*, ...)* @printf( i8* %a_ds, i32 %a_d2i ) ; :3 [#uses=0] + %a_d2sb = fptosi double %a to i8 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_ds, i8 %a_d2sb ) ; :4 [#uses=0] + %a_d2i2sb = trunc i32 %a_d2i to i8 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_ds, i8 %a_d2i2sb ) ; :5 [#uses=0] + %b = load i32* @B ; [#uses=2] + %b_ds = getelementptr [8 x i8]* @b_dstr, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %b_ds, i32 %b ) ; :6 [#uses=0] + %b_i2d = sitofp i32 %b to double ; [#uses=1] + %b_fs = getelementptr [8 x i8]* @b_fstr, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %b_fs, double %b_i2d ) ; :7 [#uses=0] + ret i32 0 } diff --git a/test/CodeGen/Generic/constindices.ll b/test/CodeGen/Generic/constindices.ll index 2467c37..6366fd5 100644 --- a/test/CodeGen/Generic/constindices.ll +++ b/test/CodeGen/Generic/constindices.ll @@ -1,56 +1,44 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc ; Test that a sequence of constant indices are folded correctly ; into the equivalent offset at compile-time. -%MixedA = type { float, [15 x int], sbyte, float } - -%MixedB = type { float, %MixedA, float } - -%fmtArg = internal global [44 x sbyte] c"sqrt(2) = %g\0Aexp(1) = %g\0Api = %g\0Afive = %g\0A\00"; <[44 x sbyte]*> [#uses=1] - -implementation - -declare int "printf"(sbyte*, ...) - -int "main"() -begin - %ScalarA = alloca %MixedA - %ScalarB = alloca %MixedB - %ArrayA = alloca %MixedA, uint 4 - %ArrayB = alloca %MixedB, uint 3 - - %I1 = getelementptr %MixedA* %ScalarA, long 0, uint 0 - store float 0x3FF6A09020000000, float *%I1 - %I2 = getelementptr %MixedB* %ScalarB, long 0, uint 1, uint 0 - store float 0x4005BF1420000000, float *%I2 - - %fptrA = getelementptr %MixedA* %ArrayA, long 1, uint 0 - %fptrB = getelementptr %MixedB* %ArrayB, long 2, uint 1, uint 0 - - store float 0x400921CAC0000000, float* %fptrA - store float 5.0, float* %fptrB - - ;; Test that a sequence of GEPs with constant indices are folded right - %fptrA1 = getelementptr %MixedA* %ArrayA, long 3 ; &ArrayA[3] - %fptrA2 = getelementptr %MixedA* %fptrA1, long 0, uint 1 ; &(*fptrA1).1 - %fptrA3 = getelementptr [15 x int]* %fptrA2, long 0, long 8 ; &(*fptrA2)[8] - store int 5, int* %fptrA3 ; ArrayA[3].1[8] = 5 - - %sqrtTwo = load float *%I1 - %exp = load float *%I2 - %I3 = getelementptr %MixedA* %ArrayA, long 1, uint 0 - %pi = load float* %I3 - %I4 = getelementptr %MixedB* %ArrayB, long 2, uint 1, uint 0 - %five = load float* %I4 - - %dsqrtTwo = cast float %sqrtTwo to double - %dexp = cast float %exp to double - %dpi = cast float %pi to double - %dfive = cast float %five to double - - %castFmt = getelementptr [44 x sbyte]* %fmtArg, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %castFmt, double %dsqrtTwo, double %dexp, double %dpi, double %dfive) - - ret int 0 -end + %MixedA = type { float, [15 x i32], i8, float } + %MixedB = type { float, %MixedA, float } +@fmtArg = internal global [44 x i8] c"sqrt(2) = %g\0Aexp(1) = %g\0Api = %g\0Afive = %g\0A\00" ; <[44 x i8]*> [#uses=1] + +declare i32 @printf(i8*, ...) + +define i32 @main() { + %ScalarA = alloca %MixedA ; <%MixedA*> [#uses=1] + %ScalarB = alloca %MixedB ; <%MixedB*> [#uses=1] + %ArrayA = alloca %MixedA, i32 4 ; <%MixedA*> [#uses=3] + %ArrayB = alloca %MixedB, i32 3 ; <%MixedB*> [#uses=2] + %I1 = getelementptr %MixedA* %ScalarA, i64 0, i32 0 ; [#uses=2] + store float 0x3FF6A09020000000, float* %I1 + %I2 = getelementptr %MixedB* %ScalarB, i64 0, i32 1, i32 0 ; [#uses=2] + store float 0x4005BF1420000000, float* %I2 + %fptrA = getelementptr %MixedA* %ArrayA, i64 1, i32 0 ; [#uses=1] + %fptrB = getelementptr %MixedB* %ArrayB, i64 2, i32 1, i32 0 ; [#uses=1] + store float 0x400921CAC0000000, float* %fptrA + store float 5.000000e+00, float* %fptrB + + ;; Test that a sequence of GEPs with constant indices are folded right + %fptrA1 = getelementptr %MixedA* %ArrayA, i64 3 ; <%MixedA*> [#uses=1] + %fptrA2 = getelementptr %MixedA* %fptrA1, i64 0, i32 1 ; <[15 x i32]*> [#uses=1] + %fptrA3 = getelementptr [15 x i32]* %fptrA2, i64 0, i64 8 ; [#uses=1] + store i32 5, i32* %fptrA3 + %sqrtTwo = load float* %I1 ; [#uses=1] + %exp = load float* %I2 ; [#uses=1] + %I3 = getelementptr %MixedA* %ArrayA, i64 1, i32 0 ; [#uses=1] + %pi = load float* %I3 ; [#uses=1] + %I4 = getelementptr %MixedB* %ArrayB, i64 2, i32 1, i32 0 ; [#uses=1] + %five = load float* %I4 ; [#uses=1] + %dsqrtTwo = fpext float %sqrtTwo to double ; [#uses=1] + %dexp = fpext float %exp to double ; [#uses=1] + %dpi = fpext float %pi to double ; [#uses=1] + %dfive = fpext float %five to double ; [#uses=1] + %castFmt = getelementptr [44 x i8]* @fmtArg, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %castFmt, double %dsqrtTwo, double %dexp, double %dpi, double %dfive ) ; :1 [#uses=0] + ret i32 0 +} diff --git a/test/CodeGen/Generic/debug-info.ll b/test/CodeGen/Generic/debug-info.ll index 49f693a..d1bb66d 100644 --- a/test/CodeGen/Generic/debug-info.ll +++ b/test/CodeGen/Generic/debug-info.ll @@ -1,19 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -%lldb.compile_unit = type { uint, ushort, ushort, sbyte*, sbyte*, sbyte*, { }* } -%d.compile_unit7 = external global %lldb.compile_unit ; <%lldb.compile_unit*> [#uses=1] +; RUN: llvm-as < %s | llc -implementation ; Functions: + %lldb.compile_unit = type { i32, i16, i16, i8*, i8*, i8*, { }* } +@d.compile_unit7 = external global %lldb.compile_unit ; <%lldb.compile_unit*> [#uses=1] -declare void %llvm.dbg.stoppoint(uint, uint, %lldb.compile_unit*) +declare void @llvm.dbg.stoppoint(i32, i32, %lldb.compile_unit*) -void %rb_raise(int, ...) { +define void @rb_raise(i32, ...) { entry: - br bool false, label %strlen.exit, label %no_exit.i + br i1 false, label %strlen.exit, label %no_exit.i -no_exit.i: ; preds = %entry - ret void +no_exit.i: ; preds = %entry + ret void -strlen.exit: ; preds = %entry - call void %llvm.dbg.stoppoint(uint 4358, uint 0, %lldb.compile_unit* %d.compile_unit7 ) ; <{ }*> [#uses=0] - unreachable +strlen.exit: ; preds = %entry + call void @llvm.dbg.stoppoint( i32 4358, i32 0, %lldb.compile_unit* @d.compile_unit7 ) + unreachable } + diff --git a/test/CodeGen/Generic/div-neg-power-2.ll b/test/CodeGen/Generic/div-neg-power-2.ll index 7452c7e..3bc4899 100644 --- a/test/CodeGen/Generic/div-neg-power-2.ll +++ b/test/CodeGen/Generic/div-neg-power-2.ll @@ -1,6 +1,7 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -int %test(int %X) { - %Y = div int %X, -2 - ret int %Y +define i32 @test(i32 %X) { + %Y = sdiv i32 %X, -2 ; [#uses=1] + ret i32 %Y } + diff --git a/test/CodeGen/Generic/fneg-fabs.ll b/test/CodeGen/Generic/fneg-fabs.ll index 3dc4588..f9580b1 100644 --- a/test/CodeGen/Generic/fneg-fabs.ll +++ b/test/CodeGen/Generic/fneg-fabs.ll @@ -1,26 +1,26 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -double %fneg(double %X) { - %Y = sub double -0.0, %X - ret double %Y +define double @fneg(double %X) { + %Y = sub double -0.000000e+00, %X ; [#uses=1] + ret double %Y } -float %fnegf(float %X) { - %Y = sub float -0.0, %X - ret float %Y +define float @fnegf(float %X) { + %Y = sub float -0.000000e+00, %X ; [#uses=1] + ret float %Y } -declare double %fabs(double) -declare float %fabsf(float) +declare double @fabs(double) +declare float @fabsf(float) -double %fabstest(double %X) { - %Y = call double %fabs(double %X) - ret double %Y +define double @fabstest(double %X) { + %Y = call double @fabs( double %X ) ; [#uses=1] + ret double %Y } -float %fabsftest(float %X) { - %Y = call float %fabsf(float %X) - ret float %Y +define float @fabsftest(float %X) { + %Y = call float @fabsf( float %X ) ; [#uses=1] + ret float %Y } diff --git a/test/CodeGen/Generic/fwdtwice.ll b/test/CodeGen/Generic/fwdtwice.ll index 84ea87e..05e831a 100644 --- a/test/CodeGen/Generic/fwdtwice.ll +++ b/test/CodeGen/Generic/fwdtwice.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; ;; Test the sequence: @@ -12,17 +12,18 @@ ;; brlez , .L_SumArray_bb3. ;; This came from %bb1 of sumarrray.ll generated from sumarray.c. - -int %SumArray(int %Num) { - %Num = alloca int +define i32 @SumArray(i32 %Num) { + %Num.upgrd.1 = alloca i32 ; [#uses=2] br label %Top -Top: - store int %Num, int * %Num - %reg108 = load int * %Num - %cast1006 = cast int %reg108 to uint - %cond1001 = setle uint %cast1006, 0 - br bool %cond1001, label %bb6, label %Top -bb6: - ret int 42 +Top: ; preds = %Top, %0 + store i32 %Num, i32* %Num.upgrd.1 + %reg108 = load i32* %Num.upgrd.1 ; [#uses=1] + %cast1006 = bitcast i32 %reg108 to i32 ; [#uses=1] + %cond1001 = icmp ule i32 %cast1006, 0 ; [#uses=1] + br i1 %cond1001, label %bb6, label %Top + +bb6: ; preds = %Top + ret i32 42 } + diff --git a/test/CodeGen/Generic/global-ret0.ll b/test/CodeGen/Generic/global-ret0.ll index dfe6aef..8fcef33 100644 --- a/test/CodeGen/Generic/global-ret0.ll +++ b/test/CodeGen/Generic/global-ret0.ll @@ -1,8 +1,8 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -%g = global int 0 +@g = global i32 0 ; [#uses=1] -int %main() { - %h = load int* %g - ret int %h +define i32 @main() { + %h = load i32* @g ; [#uses=1] + ret i32 %h } diff --git a/test/CodeGen/Generic/hello.ll b/test/CodeGen/Generic/hello.ll index d9e9d58..705423f 100644 --- a/test/CodeGen/Generic/hello.ll +++ b/test/CodeGen/Generic/hello.ll @@ -1,11 +1,11 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -%.str_1 = internal constant [7 x sbyte] c"hello\0A\00" +@.str_1 = internal constant [7 x i8] c"hello\0A\00" ; <[7 x i8]*> [#uses=1] -declare int %printf(sbyte*, ...) +declare i32 @printf(i8*, ...) -int %main() { - %s = getelementptr [7 x sbyte]* %.str_1, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %s) - ret int 0 +define i32 @main() { + %s = getelementptr [7 x i8]* @.str_1, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %s ) ; :1 [#uses=0] + ret i32 0 } diff --git a/test/CodeGen/Generic/intrinsics.ll b/test/CodeGen/Generic/intrinsics.ll index eb3148a..373bec9 100644 --- a/test/CodeGen/Generic/intrinsics.ll +++ b/test/CodeGen/Generic/intrinsics.ll @@ -1,31 +1,40 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ;; SQRT -declare float %llvm.sqrt.f32(float) -declare double %llvm.sqrt.f64(double) -double %test_sqrt(float %F) { - %G = call float %llvm.sqrt.f32(float %F) - %H = cast float %G to double - %I = call double %llvm.sqrt.f64(double %H) - ret double %I +declare float @llvm.sqrt.f32(float) + +declare double @llvm.sqrt.f64(double) + +define double @test_sqrt(float %F) { + %G = call float @llvm.sqrt.f32( float %F ) ; [#uses=1] + %H = fpext float %G to double ; [#uses=1] + %I = call double @llvm.sqrt.f64( double %H ) ; [#uses=1] + ret double %I } + ; SIN -declare float %sinf(float) -declare double %sin(double) -double %test_sin(float %F) { - %G = call float %sinf(float %F) - %H = cast float %G to double - %I = call double %sin(double %H) - ret double %I +declare float @sinf(float) + +declare double @sin(double) + +define double @test_sin(float %F) { + %G = call float @sinf( float %F ) ; [#uses=1] + %H = fpext float %G to double ; [#uses=1] + %I = call double @sin( double %H ) ; [#uses=1] + ret double %I } + ; COS -declare float %cosf(float) -declare double %cos(double) -double %test_cos(float %F) { - %G = call float %cosf(float %F) - %H = cast float %G to double - %I = call double %cos(double %H) - ret double %I +declare float @cosf(float) + +declare double @cos(double) + +define double @test_cos(float %F) { + %G = call float @cosf( float %F ) ; [#uses=1] + %H = fpext float %G to double ; [#uses=1] + %I = call double @cos( double %H ) ; [#uses=1] + ret double %I } + diff --git a/test/CodeGen/Generic/isunord.ll b/test/CodeGen/Generic/isunord.ll index 1495bd0..589f496 100644 --- a/test/CodeGen/Generic/isunord.ll +++ b/test/CodeGen/Generic/isunord.ll @@ -1,10 +1,10 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc ; XFAIL: ia64 +declare i1 @llvm.isunordered.f64(double, double) -declare bool %llvm.isunordered.f64(double, double) - -bool %test(double %X, double %Y) { - %tmp27 = call bool %llvm.isunordered.f64( double %X, double %Y) - ret bool %tmp27 +define i1 @test(double %X, double %Y) { + %tmp27 = fcmp uno double %X, %Y ; [#uses=1] + ret i1 %tmp27 } + diff --git a/test/CodeGen/Generic/llvm-ct-intrinsics.ll b/test/CodeGen/Generic/llvm-ct-intrinsics.ll index 014d261..66f409e 100644 --- a/test/CodeGen/Generic/llvm-ct-intrinsics.ll +++ b/test/CodeGen/Generic/llvm-ct-intrinsics.ll @@ -1,59 +1,62 @@ ; Make sure this testcase is supported by all code generators -; RUN: llvm-upgrade < %s | llvm-as | llc - -declare ulong %llvm.ctpop.i64(ulong) -declare uint %llvm.ctpop.i32(uint) -declare ushort %llvm.ctpop.i16(ushort) -declare ubyte %llvm.ctpop.i8(ubyte) - -void %ctpoptest(ubyte %A, ushort %B, uint %C, ulong %D, - ubyte *%AP, ushort* %BP, uint* %CP, ulong* %DP) { - %a = call ubyte %llvm.ctpop.i8(ubyte %A) - %b = call ushort %llvm.ctpop.i16(ushort %B) - %c = call uint %llvm.ctpop.i32(uint %C) - %d = call ulong %llvm.ctpop.i64(ulong %D) - - store ubyte %a, ubyte* %AP - store ushort %b, ushort* %BP - store uint %c, uint* %CP - store ulong %d, ulong* %DP +; RUN: llvm-as < %s | llc + +declare i64 @llvm.ctpop.i64(i64) + +declare i32 @llvm.ctpop.i32(i32) + +declare i16 @llvm.ctpop.i16(i16) + +declare i8 @llvm.ctpop.i8(i8) + +define void @ctpoptest(i8 %A, i16 %B, i32 %C, i64 %D, i8* %AP, i16* %BP, i32* %CP, i64* %DP) { + %a = call i8 @llvm.ctpop.i8( i8 %A ) ; [#uses=1] + %b = call i16 @llvm.ctpop.i16( i16 %B ) ; [#uses=1] + %c = call i32 @llvm.ctpop.i32( i32 %C ) ; [#uses=1] + %d = call i64 @llvm.ctpop.i64( i64 %D ) ; [#uses=1] + store i8 %a, i8* %AP + store i16 %b, i16* %BP + store i32 %c, i32* %CP + store i64 %d, i64* %DP ret void } -declare ulong %llvm.ctlz.i64(ulong) -declare uint %llvm.ctlz.i32(uint) -declare ushort %llvm.ctlz.i16(ushort) -declare ubyte %llvm.ctlz.i8(ubyte) - -void %ctlztest(ubyte %A, ushort %B, uint %C, ulong %D, - ubyte *%AP, ushort* %BP, uint* %CP, ulong* %DP) { - %a = call ubyte %llvm.ctlz.i8(ubyte %A) - %b = call ushort %llvm.ctlz.i16(ushort %B) - %c = call uint %llvm.ctlz.i32(uint %C) - %d = call ulong %llvm.ctlz.i64(ulong %D) - - store ubyte %a, ubyte* %AP - store ushort %b, ushort* %BP - store uint %c, uint* %CP - store ulong %d, ulong* %DP +declare i64 @llvm.ctlz.i64(i64) + +declare i32 @llvm.ctlz.i32(i32) + +declare i16 @llvm.ctlz.i16(i16) + +declare i8 @llvm.ctlz.i8(i8) + +define void @ctlztest(i8 %A, i16 %B, i32 %C, i64 %D, i8* %AP, i16* %BP, i32* %CP, i64* %DP) { + %a = call i8 @llvm.ctlz.i8( i8 %A ) ; [#uses=1] + %b = call i16 @llvm.ctlz.i16( i16 %B ) ; [#uses=1] + %c = call i32 @llvm.ctlz.i32( i32 %C ) ; [#uses=1] + %d = call i64 @llvm.ctlz.i64( i64 %D ) ; [#uses=1] + store i8 %a, i8* %AP + store i16 %b, i16* %BP + store i32 %c, i32* %CP + store i64 %d, i64* %DP ret void } -declare ulong %llvm.cttz.i64(ulong) -declare uint %llvm.cttz.i32(uint) -declare ushort %llvm.cttz.i16(ushort) -declare ubyte %llvm.cttz.i8(ubyte) - -void %cttztest(ubyte %A, ushort %B, uint %C, ulong %D, - ubyte *%AP, ushort* %BP, uint* %CP, ulong* %DP) { - %a = call ubyte %llvm.cttz.i8(ubyte %A) - %b = call ushort %llvm.cttz.i16(ushort %B) - %c = call uint %llvm.cttz.i32(uint %C) - %d = call ulong %llvm.cttz.i64(ulong %D) - - store ubyte %a, ubyte* %AP - store ushort %b, ushort* %BP - store uint %c, uint* %CP - store ulong %d, ulong* %DP +declare i64 @llvm.cttz.i64(i64) + +declare i32 @llvm.cttz.i32(i32) + +declare i16 @llvm.cttz.i16(i16) + +declare i8 @llvm.cttz.i8(i8) + +define void @cttztest(i8 %A, i16 %B, i32 %C, i64 %D, i8* %AP, i16* %BP, i32* %CP, i64* %DP) { + %a = call i8 @llvm.cttz.i8( i8 %A ) ; [#uses=1] + %b = call i16 @llvm.cttz.i16( i16 %B ) ; [#uses=1] + %c = call i32 @llvm.cttz.i32( i32 %C ) ; [#uses=1] + %d = call i64 @llvm.cttz.i64( i64 %D ) ; [#uses=1] + store i8 %a, i8* %AP + store i16 %b, i16* %BP + store i32 %c, i32* %CP + store i64 %d, i64* %DP ret void } diff --git a/test/CodeGen/Generic/negintconst.ll b/test/CodeGen/Generic/negintconst.ll index 020b6bb..a2b3d69 100644 --- a/test/CodeGen/Generic/negintconst.ll +++ b/test/CodeGen/Generic/negintconst.ll @@ -1,4 +1,4 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc ; Test that a negative constant smaller than 64 bits (e.g., int) ; is correctly implemented with sign-extension. @@ -28,24 +28,20 @@ ; instead of: ; ioff = 2 fval = 0xffffffff7fffec90 &fval[2] = 0xffffffff7fffeca8 ; + %Results = type { float, float, float } +@fmtArg = internal global [39 x i8] c"ioff = %u\09fval = 0x%p\09&fval[2] = 0x%p\0A\00" ; <[39 x i8]*> [#uses=1] -%Results = type { float, float, float } +declare i32 @printf(i8*, ...) -%fmtArg = internal global [39 x sbyte] c"ioff = %u\09fval = 0x%p\09&fval[2] = 0x%p\0A\00"; <[39 x sbyte]*> [#uses=1] +define i32 @main() { + %fval = alloca %Results, i32 4 ; <%Results*> [#uses=2] + %i = add i32 1, 0 ; [#uses=1] + %iscale = mul i32 %i, -1 ; [#uses=1] + %ioff = add i32 %iscale, 3 ; [#uses=2] + %ioff.upgrd.1 = zext i32 %ioff to i64 ; [#uses=1] + %fptr = getelementptr %Results* %fval, i64 %ioff.upgrd.1 ; <%Results*> [#uses=1] + %castFmt = getelementptr [39 x i8]* @fmtArg, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %castFmt, i32 %ioff, %Results* %fval, %Results* %fptr ) ; :1 [#uses=0] + ret i32 0 +} -implementation - -declare int "printf"(sbyte*, ...) - -int "main"() -begin - %fval = alloca %Results, uint 4 - %i = add uint 1, 0 ; i = 1 - %iscale = mul uint %i, 4294967295 ; i*-1 = -1 - %ioff = add uint %iscale, 3 ; 3+(-i) = 2 - %ioff = cast uint %ioff to long - %fptr = getelementptr %Results* %fval, long %ioff ; &fval[2] - %castFmt = getelementptr [39 x sbyte]* %fmtArg, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %castFmt, uint %ioff, %Results* %fval, %Results* %fptr) - ret int 0 -end diff --git a/test/CodeGen/Generic/nested-select.ll b/test/CodeGen/Generic/nested-select.ll index 192d29f..a723a4d 100644 --- a/test/CodeGen/Generic/nested-select.ll +++ b/test/CodeGen/Generic/nested-select.ll @@ -1,20 +1,19 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -o /dev/null -f +; RUN: llvm-as < %s | llc -o /dev/null -f ; Test that select of a select works %typedef.tree = type opaque -implementation +define i32 @ic_test(double %p.0.2.0.val, double %p.0.2.1.val, double %p.0.2.2.val, %typedef.tree* %t) { + %result.1.0 = zext i1 false to i32 ; [#uses=1] + %tmp.55 = fcmp oge double 0.000000e+00, 1.000000e+00 ; [#uses=1] + %tmp.66 = fdiv double 0.000000e+00, 0.000000e+00 ; [#uses=1] + br label %N -int %ic_test(double %p.0.2.0.val, double %p.0.2.1.val, double %p.0.2.2.val, %typedef.tree* %t) { - %result.1.0 = cast bool false to int ; [#uses=1] - %tmp.55 = setge double 0.000000e+00, 1.000000e+00 ; [#uses=1] - %tmp.66 = div double 0.000000e+00, 0.000000e+00 ; [#uses=1] - br label %N -N: - %result.1.1 = select bool %tmp.55, int 0, int %result.1.0 ; [#uses=1] - %tmp.75 = setge double %tmp.66, 1.000000e+00 ; [#uses=1] - %retval1 = select bool %tmp.75, int 0, int %result.1.1 ; [#uses=1] - ret int %retval1 +N: ; preds = %0 + %result.1.1 = select i1 %tmp.55, i32 0, i32 %result.1.0 ; [#uses=1] + %tmp.75 = fcmp oge double %tmp.66, 1.000000e+00 ; [#uses=1] + %retval1 = select i1 %tmp.75, i32 0, i32 %result.1.1 ; [#uses=1] + ret i32 %retval1 } diff --git a/test/CodeGen/Generic/print-add.ll b/test/CodeGen/Generic/print-add.ll index ef224a1..4f1cb5e 100644 --- a/test/CodeGen/Generic/print-add.ll +++ b/test/CodeGen/Generic/print-add.ll @@ -1,18 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -%.str_1 = internal constant [4 x sbyte] c"%d\0A\00" +@.str_1 = internal constant [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1] -declare int %printf(sbyte*, ...) +declare i32 @printf(i8*, ...) -int %main() { - %f = getelementptr [4 x sbyte]* %.str_1, long 0, long 0 - %d = add int 1, 0 - call int (sbyte*, ...)* %printf(sbyte* %f, int %d) - %e = add int 38, 2 - call int (sbyte*, ...)* %printf(sbyte* %f, int %e) - %g = add int %d, %d - %h = add int %e, %g - call int (sbyte*, ...)* %printf(sbyte* %f, int %h) - ret int 0 +define i32 @main() { + %f = getelementptr [4 x i8]* @.str_1, i64 0, i64 0 ; [#uses=3] + %d = add i32 1, 0 ; [#uses=3] + call i32 (i8*, ...)* @printf( i8* %f, i32 %d ) ; :1 [#uses=0] + %e = add i32 38, 2 ; [#uses=2] + call i32 (i8*, ...)* @printf( i8* %f, i32 %e ) ; :2 [#uses=0] + %g = add i32 %d, %d ; [#uses=1] + %h = add i32 %e, %g ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %f, i32 %h ) ; :3 [#uses=0] + ret i32 0 } diff --git a/test/CodeGen/Generic/print-arith-fp.ll b/test/CodeGen/Generic/print-arith-fp.ll index cfa7583..87aa1a0 100644 --- a/test/CodeGen/Generic/print-arith-fp.ll +++ b/test/CodeGen/Generic/print-arith-fp.ll @@ -1,76 +1,61 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc - -%a_str = internal constant [8 x sbyte] c"a = %f\0A\00" -%b_str = internal constant [8 x sbyte] c"b = %f\0A\00" -;; binary ops: arith -%add_str = internal constant [12 x sbyte] c"a + b = %f\0A\00" -%sub_str = internal constant [12 x sbyte] c"a - b = %f\0A\00" -%mul_str = internal constant [12 x sbyte] c"a * b = %f\0A\00" -%div_str = internal constant [12 x sbyte] c"b / a = %f\0A\00" -%rem_str = internal constant [13 x sbyte] c"b %% a = %f\0A\00" -;; binary ops: setcc -%lt_str = internal constant [12 x sbyte] c"a < b = %d\0A\00" -%le_str = internal constant [13 x sbyte] c"a <= b = %d\0A\00" -%gt_str = internal constant [12 x sbyte] c"a > b = %d\0A\00" -%ge_str = internal constant [13 x sbyte] c"a >= b = %d\0A\00" -%eq_str = internal constant [13 x sbyte] c"a == b = %d\0A\00" -%ne_str = internal constant [13 x sbyte] c"a != b = %d\0A\00" - -declare int %printf(sbyte*, ...) -%A = global double 2.0 -%B = global double 5.0 - -int %main() { - ;; main vars - %a = load double* %A - %b = load double* %B - - %a_s = getelementptr [8 x sbyte]* %a_str, long 0, long 0 - %b_s = getelementptr [8 x sbyte]* %b_str, long 0, long 0 - - call int (sbyte*, ...)* %printf(sbyte* %a_s, double %a) - call int (sbyte*, ...)* %printf(sbyte* %b_s, double %b) - - ;; arithmetic - %add_r = add double %a, %b - %sub_r = sub double %a, %b - %mul_r = mul double %a, %b - %div_r = div double %b, %a - %rem_r = rem double %b, %a - - %add_s = getelementptr [12 x sbyte]* %add_str, long 0, long 0 - %sub_s = getelementptr [12 x sbyte]* %sub_str, long 0, long 0 - %mul_s = getelementptr [12 x sbyte]* %mul_str, long 0, long 0 - %div_s = getelementptr [12 x sbyte]* %div_str, long 0, long 0 - %rem_s = getelementptr [13 x sbyte]* %rem_str, long 0, long 0 - - call int (sbyte*, ...)* %printf(sbyte* %add_s, double %add_r) - call int (sbyte*, ...)* %printf(sbyte* %sub_s, double %sub_r) - call int (sbyte*, ...)* %printf(sbyte* %mul_s, double %mul_r) - call int (sbyte*, ...)* %printf(sbyte* %div_s, double %div_r) - call int (sbyte*, ...)* %printf(sbyte* %rem_s, double %rem_r) - - ;; setcc - %lt_r = setlt double %a, %b - %le_r = setle double %a, %b - %gt_r = setgt double %a, %b - %ge_r = setge double %a, %b - %eq_r = seteq double %a, %b - %ne_r = setne double %a, %b - - %lt_s = getelementptr [12 x sbyte]* %lt_str, long 0, long 0 - %le_s = getelementptr [13 x sbyte]* %le_str, long 0, long 0 - %gt_s = getelementptr [12 x sbyte]* %gt_str, long 0, long 0 - %ge_s = getelementptr [13 x sbyte]* %ge_str, long 0, long 0 - %eq_s = getelementptr [13 x sbyte]* %eq_str, long 0, long 0 - %ne_s = getelementptr [13 x sbyte]* %ne_str, long 0, long 0 - - call int (sbyte*, ...)* %printf(sbyte* %lt_s, bool %lt_r) - call int (sbyte*, ...)* %printf(sbyte* %le_s, bool %le_r) - call int (sbyte*, ...)* %printf(sbyte* %gt_s, bool %gt_r) - call int (sbyte*, ...)* %printf(sbyte* %ge_s, bool %ge_r) - call int (sbyte*, ...)* %printf(sbyte* %eq_s, bool %eq_r) - call int (sbyte*, ...)* %printf(sbyte* %ne_s, bool %ne_r) - - ret int 0 +; RUN: llvm-as < %s | llc +@a_str = internal constant [8 x i8] c"a = %f\0A\00" ; <[8 x i8]*> [#uses=1] +@b_str = internal constant [8 x i8] c"b = %f\0A\00" ; <[8 x i8]*> [#uses=1] +@add_str = internal constant [12 x i8] c"a + b = %f\0A\00" ; <[12 x i8]*> [#uses=1] +@sub_str = internal constant [12 x i8] c"a - b = %f\0A\00" ; <[12 x i8]*> [#uses=1] +@mul_str = internal constant [12 x i8] c"a * b = %f\0A\00" ; <[12 x i8]*> [#uses=1] +@div_str = internal constant [12 x i8] c"b / a = %f\0A\00" ; <[12 x i8]*> [#uses=1] +@rem_str = internal constant [13 x i8] c"b %% a = %f\0A\00" ; <[13 x i8]*> [#uses=1] +@lt_str = internal constant [12 x i8] c"a < b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@le_str = internal constant [13 x i8] c"a <= b = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@gt_str = internal constant [12 x i8] c"a > b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@ge_str = internal constant [13 x i8] c"a >= b = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@eq_str = internal constant [13 x i8] c"a == b = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@ne_str = internal constant [13 x i8] c"a != b = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@A = global double 2.000000e+00 ; [#uses=1] +@B = global double 5.000000e+00 ; [#uses=1] + +declare i32 @printf(i8*, ...) + +define i32 @main() { + %a = load double* @A ; [#uses=12] + %b = load double* @B ; [#uses=12] + %a_s = getelementptr [8 x i8]* @a_str, i64 0, i64 0 ; [#uses=1] + %b_s = getelementptr [8 x i8]* @b_str, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_s, double %a ) ; :1 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %b_s, double %b ) ; :2 [#uses=0] + %add_r = add double %a, %b ; [#uses=1] + %sub_r = sub double %a, %b ; [#uses=1] + %mul_r = mul double %a, %b ; [#uses=1] + %div_r = fdiv double %b, %a ; [#uses=1] + %rem_r = frem double %b, %a ; [#uses=1] + %add_s = getelementptr [12 x i8]* @add_str, i64 0, i64 0 ; [#uses=1] + %sub_s = getelementptr [12 x i8]* @sub_str, i64 0, i64 0 ; [#uses=1] + %mul_s = getelementptr [12 x i8]* @mul_str, i64 0, i64 0 ; [#uses=1] + %div_s = getelementptr [12 x i8]* @div_str, i64 0, i64 0 ; [#uses=1] + %rem_s = getelementptr [13 x i8]* @rem_str, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %add_s, double %add_r ) ; :3 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %sub_s, double %sub_r ) ; :4 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %mul_s, double %mul_r ) ; :5 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %div_s, double %div_r ) ; :6 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %rem_s, double %rem_r ) ; :7 [#uses=0] + %lt_r = fcmp olt double %a, %b ; [#uses=1] + %le_r = fcmp ole double %a, %b ; [#uses=1] + %gt_r = fcmp ogt double %a, %b ; [#uses=1] + %ge_r = fcmp oge double %a, %b ; [#uses=1] + %eq_r = fcmp oeq double %a, %b ; [#uses=1] + %ne_r = fcmp une double %a, %b ; [#uses=1] + %lt_s = getelementptr [12 x i8]* @lt_str, i64 0, i64 0 ; [#uses=1] + %le_s = getelementptr [13 x i8]* @le_str, i64 0, i64 0 ; [#uses=1] + %gt_s = getelementptr [12 x i8]* @gt_str, i64 0, i64 0 ; [#uses=1] + %ge_s = getelementptr [13 x i8]* @ge_str, i64 0, i64 0 ; [#uses=1] + %eq_s = getelementptr [13 x i8]* @eq_str, i64 0, i64 0 ; [#uses=1] + %ne_s = getelementptr [13 x i8]* @ne_str, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %lt_s, i1 %lt_r ) ; :8 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %le_s, i1 %le_r ) ; :9 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %gt_s, i1 %gt_r ) ; :10 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %ge_s, i1 %ge_r ) ; :11 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %eq_s, i1 %eq_r ) ; :12 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %ne_s, i1 %ne_r ) ; :13 [#uses=0] + ret i32 0 } diff --git a/test/CodeGen/Generic/print-arith-int.ll b/test/CodeGen/Generic/print-arith-int.ll index 708abec..cf27515 100644 --- a/test/CodeGen/Generic/print-arith-int.ll +++ b/test/CodeGen/Generic/print-arith-int.ll @@ -1,102 +1,84 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc +@a_str = internal constant [8 x i8] c"a = %d\0A\00" ; <[8 x i8]*> [#uses=1] +@b_str = internal constant [8 x i8] c"b = %d\0A\00" ; <[8 x i8]*> [#uses=1] +@add_str = internal constant [12 x i8] c"a + b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@sub_str = internal constant [12 x i8] c"a - b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@mul_str = internal constant [12 x i8] c"a * b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@div_str = internal constant [12 x i8] c"b / a = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@rem_str = internal constant [13 x i8] c"b \5C% a = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@lt_str = internal constant [12 x i8] c"a < b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@le_str = internal constant [13 x i8] c"a <= b = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@gt_str = internal constant [12 x i8] c"a > b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@ge_str = internal constant [13 x i8] c"a >= b = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@eq_str = internal constant [13 x i8] c"a == b = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@ne_str = internal constant [13 x i8] c"a != b = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@and_str = internal constant [12 x i8] c"a & b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@or_str = internal constant [12 x i8] c"a | b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@xor_str = internal constant [12 x i8] c"a ^ b = %d\0A\00" ; <[12 x i8]*> [#uses=1] +@shl_str = internal constant [13 x i8] c"b << a = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@shr_str = internal constant [13 x i8] c"b >> a = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@A = global i32 2 ; [#uses=1] +@B = global i32 5 ; [#uses=1] -%a_str = internal constant [8 x sbyte] c"a = %d\0A\00" -%b_str = internal constant [8 x sbyte] c"b = %d\0A\00" -;; binary ops: arith -%add_str = internal constant [12 x sbyte] c"a + b = %d\0A\00" -%sub_str = internal constant [12 x sbyte] c"a - b = %d\0A\00" -%mul_str = internal constant [12 x sbyte] c"a * b = %d\0A\00" -%div_str = internal constant [12 x sbyte] c"b / a = %d\0A\00" -%rem_str = internal constant [13 x sbyte] c"b \% a = %d\0A\00" -;; binary ops: setcc -%lt_str = internal constant [12 x sbyte] c"a < b = %d\0A\00" -%le_str = internal constant [13 x sbyte] c"a <= b = %d\0A\00" -%gt_str = internal constant [12 x sbyte] c"a > b = %d\0A\00" -%ge_str = internal constant [13 x sbyte] c"a >= b = %d\0A\00" -%eq_str = internal constant [13 x sbyte] c"a == b = %d\0A\00" -%ne_str = internal constant [13 x sbyte] c"a != b = %d\0A\00" -;; logical -%and_str = internal constant [12 x sbyte] c"a & b = %d\0A\00" -%or_str = internal constant [12 x sbyte] c"a | b = %d\0A\00" -%xor_str = internal constant [12 x sbyte] c"a ^ b = %d\0A\00" -%shl_str = internal constant [13 x sbyte] c"b << a = %d\0A\00" -%shr_str = internal constant [13 x sbyte] c"b >> a = %d\0A\00" +declare i32 @printf(i8*, ...) -declare int %printf(sbyte*, ...) -%A = global int 2 -%B = global int 5 - -int %main() { - ;; main vars - %a = load int* %A - %b = load int* %B - - %a_s = getelementptr [8 x sbyte]* %a_str, long 0, long 0 - %b_s = getelementptr [8 x sbyte]* %b_str, long 0, long 0 - - call int (sbyte*, ...)* %printf(sbyte* %a_s, int %a) - call int (sbyte*, ...)* %printf(sbyte* %b_s, int %b) - - ;; arithmetic - %add_r = add int %a, %b - %sub_r = sub int %a, %b - %mul_r = mul int %a, %b - %div_r = div int %b, %a - %rem_r = rem int %b, %a - - %add_s = getelementptr [12 x sbyte]* %add_str, long 0, long 0 - %sub_s = getelementptr [12 x sbyte]* %sub_str, long 0, long 0 - %mul_s = getelementptr [12 x sbyte]* %mul_str, long 0, long 0 - %div_s = getelementptr [12 x sbyte]* %div_str, long 0, long 0 - %rem_s = getelementptr [13 x sbyte]* %rem_str, long 0, long 0 - - call int (sbyte*, ...)* %printf(sbyte* %add_s, int %add_r) - call int (sbyte*, ...)* %printf(sbyte* %sub_s, int %sub_r) - call int (sbyte*, ...)* %printf(sbyte* %mul_s, int %mul_r) - call int (sbyte*, ...)* %printf(sbyte* %div_s, int %div_r) - call int (sbyte*, ...)* %printf(sbyte* %rem_s, int %rem_r) - - ;; setcc - %lt_r = setlt int %a, %b - %le_r = setle int %a, %b - %gt_r = setgt int %a, %b - %ge_r = setge int %a, %b - %eq_r = seteq int %a, %b - %ne_r = setne int %a, %b - - %lt_s = getelementptr [12 x sbyte]* %lt_str, long 0, long 0 - %le_s = getelementptr [13 x sbyte]* %le_str, long 0, long 0 - %gt_s = getelementptr [12 x sbyte]* %gt_str, long 0, long 0 - %ge_s = getelementptr [13 x sbyte]* %ge_str, long 0, long 0 - %eq_s = getelementptr [13 x sbyte]* %eq_str, long 0, long 0 - %ne_s = getelementptr [13 x sbyte]* %ne_str, long 0, long 0 - - call int (sbyte*, ...)* %printf(sbyte* %lt_s, bool %lt_r) - call int (sbyte*, ...)* %printf(sbyte* %le_s, bool %le_r) - call int (sbyte*, ...)* %printf(sbyte* %gt_s, bool %gt_r) - call int (sbyte*, ...)* %printf(sbyte* %ge_s, bool %ge_r) - call int (sbyte*, ...)* %printf(sbyte* %eq_s, bool %eq_r) - call int (sbyte*, ...)* %printf(sbyte* %ne_s, bool %ne_r) - - ;; logical - %and_r = and int %a, %b - %or_r = or int %a, %b - %xor_r = xor int %a, %b - %u = cast int %a to ubyte - %shl_r = shl int %b, ubyte %u - %shr_r = shr int %b, ubyte %u - - %and_s = getelementptr [12 x sbyte]* %and_str, long 0, long 0 - %or_s = getelementptr [12 x sbyte]* %or_str, long 0, long 0 - %xor_s = getelementptr [12 x sbyte]* %xor_str, long 0, long 0 - %shl_s = getelementptr [13 x sbyte]* %shl_str, long 0, long 0 - %shr_s = getelementptr [13 x sbyte]* %shr_str, long 0, long 0 - - call int (sbyte*, ...)* %printf(sbyte* %and_s, int %and_r) - call int (sbyte*, ...)* %printf(sbyte* %or_s, int %or_r) - call int (sbyte*, ...)* %printf(sbyte* %xor_s, int %xor_r) - call int (sbyte*, ...)* %printf(sbyte* %shl_s, int %shl_r) - call int (sbyte*, ...)* %printf(sbyte* %shr_s, int %shr_r) - - ret int 0 +define i32 @main() { + %a = load i32* @A ; [#uses=16] + %b = load i32* @B ; [#uses=17] + %a_s = getelementptr [8 x i8]* @a_str, i64 0, i64 0 ; [#uses=1] + %b_s = getelementptr [8 x i8]* @b_str, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_s, i32 %a ) ; :1 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %b_s, i32 %b ) ; :2 [#uses=0] + %add_r = add i32 %a, %b ; [#uses=1] + %sub_r = sub i32 %a, %b ; [#uses=1] + %mul_r = mul i32 %a, %b ; [#uses=1] + %div_r = sdiv i32 %b, %a ; [#uses=1] + %rem_r = srem i32 %b, %a ; [#uses=1] + %add_s = getelementptr [12 x i8]* @add_str, i64 0, i64 0 ; [#uses=1] + %sub_s = getelementptr [12 x i8]* @sub_str, i64 0, i64 0 ; [#uses=1] + %mul_s = getelementptr [12 x i8]* @mul_str, i64 0, i64 0 ; [#uses=1] + %div_s = getelementptr [12 x i8]* @div_str, i64 0, i64 0 ; [#uses=1] + %rem_s = getelementptr [13 x i8]* @rem_str, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %add_s, i32 %add_r ) ; :3 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %sub_s, i32 %sub_r ) ; :4 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %mul_s, i32 %mul_r ) ; :5 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %div_s, i32 %div_r ) ; :6 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %rem_s, i32 %rem_r ) ; :7 [#uses=0] + %lt_r = icmp slt i32 %a, %b ; [#uses=1] + %le_r = icmp sle i32 %a, %b ; [#uses=1] + %gt_r = icmp sgt i32 %a, %b ; [#uses=1] + %ge_r = icmp sge i32 %a, %b ; [#uses=1] + %eq_r = icmp eq i32 %a, %b ; [#uses=1] + %ne_r = icmp ne i32 %a, %b ; [#uses=1] + %lt_s = getelementptr [12 x i8]* @lt_str, i64 0, i64 0 ; [#uses=1] + %le_s = getelementptr [13 x i8]* @le_str, i64 0, i64 0 ; [#uses=1] + %gt_s = getelementptr [12 x i8]* @gt_str, i64 0, i64 0 ; [#uses=1] + %ge_s = getelementptr [13 x i8]* @ge_str, i64 0, i64 0 ; [#uses=1] + %eq_s = getelementptr [13 x i8]* @eq_str, i64 0, i64 0 ; [#uses=1] + %ne_s = getelementptr [13 x i8]* @ne_str, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %lt_s, i1 %lt_r ) ; :8 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %le_s, i1 %le_r ) ; :9 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %gt_s, i1 %gt_r ) ; :10 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %ge_s, i1 %ge_r ) ; :11 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %eq_s, i1 %eq_r ) ; :12 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %ne_s, i1 %ne_r ) ; :13 [#uses=0] + %and_r = and i32 %a, %b ; [#uses=1] + %or_r = or i32 %a, %b ; [#uses=1] + %xor_r = xor i32 %a, %b ; [#uses=1] + %u = trunc i32 %a to i8 ; [#uses=2] + %shift.upgrd.1 = zext i8 %u to i32 ; [#uses=1] + %shl_r = shl i32 %b, %shift.upgrd.1 ; [#uses=1] + %shift.upgrd.2 = zext i8 %u to i32 ; [#uses=1] + %shr_r = ashr i32 %b, %shift.upgrd.2 ; [#uses=1] + %and_s = getelementptr [12 x i8]* @and_str, i64 0, i64 0 ; [#uses=1] + %or_s = getelementptr [12 x i8]* @or_str, i64 0, i64 0 ; [#uses=1] + %xor_s = getelementptr [12 x i8]* @xor_str, i64 0, i64 0 ; [#uses=1] + %shl_s = getelementptr [13 x i8]* @shl_str, i64 0, i64 0 ; [#uses=1] + %shr_s = getelementptr [13 x i8]* @shr_str, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %and_s, i32 %and_r ) ; :14 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %or_s, i32 %or_r ) ; :15 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %xor_s, i32 %xor_r ) ; :16 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %shl_s, i32 %shl_r ) ; :17 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %shr_s, i32 %shr_r ) ; :18 [#uses=0] + ret i32 0 } diff --git a/test/CodeGen/Generic/print-int.ll b/test/CodeGen/Generic/print-int.ll index 27cf637..58f5047 100644 --- a/test/CodeGen/Generic/print-int.ll +++ b/test/CodeGen/Generic/print-int.ll @@ -1,13 +1,13 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -%.str_1 = internal constant [4 x sbyte] c"%d\0A\00" +@.str_1 = internal constant [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1] -declare int %printf(sbyte*, ...) +declare i32 @printf(i8*, ...) -int %main() { - %f = getelementptr [4 x sbyte]* %.str_1, long 0, long 0 - %d = add int 0, 0 - %tmp.0 = call int (sbyte*, ...)* %printf(sbyte* %f, int %d) - ret int 0 +define i32 @main() { + %f = getelementptr [4 x i8]* @.str_1, i64 0, i64 0 ; [#uses=1] + %d = add i32 0, 0 ; [#uses=1] + %tmp.0 = call i32 (i8*, ...)* @printf( i8* %f, i32 %d ) ; [#uses=0] + ret i32 0 } diff --git a/test/CodeGen/Generic/print-mul-exp.ll b/test/CodeGen/Generic/print-mul-exp.ll index d5f5f93..0666775 100644 --- a/test/CodeGen/Generic/print-mul-exp.ll +++ b/test/CodeGen/Generic/print-mul-exp.ll @@ -1,57 +1,55 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -%a_str = internal constant [8 x sbyte] c"a = %d\0A\00" -%a_mul_str = internal constant [13 x sbyte] c"a * %d = %d\0A\00" -%A = global int 2 -declare int %printf(sbyte*, ...) +@a_str = internal constant [8 x i8] c"a = %d\0A\00" ; <[8 x i8]*> [#uses=1] +@a_mul_str = internal constant [13 x i8] c"a * %d = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@A = global i32 2 ; [#uses=1] -int %main() { - %a = load int* %A - %a_s = getelementptr [8 x sbyte]* %a_str, long 0, long 0 - %a_mul_s = getelementptr [13 x sbyte]* %a_mul_str, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %a_s, int %a) +declare i32 @printf(i8*, ...) - %r_0 = mul int %a, 0 - %r_1 = mul int %a, 1 - %r_2 = mul int %a, 2 - %r_3 = mul int %a, 3 - %r_4 = mul int %a, 4 - %r_5 = mul int %a, 5 - %r_6 = mul int %a, 6 - %r_7 = mul int %a, 7 - %r_8 = mul int %a, 8 - %r_9 = mul int %a, 9 - %r_10 = mul int %a, 10 - %r_11 = mul int %a, 11 - %r_12 = mul int %a, 12 - %r_13 = mul int %a, 13 - %r_14 = mul int %a, 14 - %r_15 = mul int %a, 15 - %r_16 = mul int %a, 16 - %r_17 = mul int %a, 17 - %r_18 = mul int %a, 18 - %r_19 = mul int %a, 19 - - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 0, int %r_0) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 1, int %r_1) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 2, int %r_2) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 3, int %r_3) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 4, int %r_4) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 5, int %r_5) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 6, int %r_6) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 7, int %r_7) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 8, int %r_8) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 9, int %r_9) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 10, int %r_10) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 11, int %r_11) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 12, int %r_12) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 13, int %r_13) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 14, int %r_14) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 15, int %r_15) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 16, int %r_16) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 17, int %r_17) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 18, int %r_18) - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int 19, int %r_19) - - ret int 0 +define i32 @main() { + %a = load i32* @A ; [#uses=21] + %a_s = getelementptr [8 x i8]* @a_str, i64 0, i64 0 ; [#uses=1] + %a_mul_s = getelementptr [13 x i8]* @a_mul_str, i64 0, i64 0 ; [#uses=20] + call i32 (i8*, ...)* @printf( i8* %a_s, i32 %a ) ; :1 [#uses=0] + %r_0 = mul i32 %a, 0 ; [#uses=1] + %r_1 = mul i32 %a, 1 ; [#uses=1] + %r_2 = mul i32 %a, 2 ; [#uses=1] + %r_3 = mul i32 %a, 3 ; [#uses=1] + %r_4 = mul i32 %a, 4 ; [#uses=1] + %r_5 = mul i32 %a, 5 ; [#uses=1] + %r_6 = mul i32 %a, 6 ; [#uses=1] + %r_7 = mul i32 %a, 7 ; [#uses=1] + %r_8 = mul i32 %a, 8 ; [#uses=1] + %r_9 = mul i32 %a, 9 ; [#uses=1] + %r_10 = mul i32 %a, 10 ; [#uses=1] + %r_11 = mul i32 %a, 11 ; [#uses=1] + %r_12 = mul i32 %a, 12 ; [#uses=1] + %r_13 = mul i32 %a, 13 ; [#uses=1] + %r_14 = mul i32 %a, 14 ; [#uses=1] + %r_15 = mul i32 %a, 15 ; [#uses=1] + %r_16 = mul i32 %a, 16 ; [#uses=1] + %r_17 = mul i32 %a, 17 ; [#uses=1] + %r_18 = mul i32 %a, 18 ; [#uses=1] + %r_19 = mul i32 %a, 19 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 0, i32 %r_0 ) ; :2 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 1, i32 %r_1 ) ; :3 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 2, i32 %r_2 ) ; :4 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 3, i32 %r_3 ) ; :5 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 4, i32 %r_4 ) ; :6 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 5, i32 %r_5 ) ; :7 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 6, i32 %r_6 ) ; :8 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 7, i32 %r_7 ) ; :9 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 8, i32 %r_8 ) ; :10 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 9, i32 %r_9 ) ; :11 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 10, i32 %r_10 ) ; :12 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 11, i32 %r_11 ) ; :13 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 12, i32 %r_12 ) ; :14 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 13, i32 %r_13 ) ; :15 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 14, i32 %r_14 ) ; :16 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 15, i32 %r_15 ) ; :17 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 16, i32 %r_16 ) ; :18 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 17, i32 %r_17 ) ; :19 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 18, i32 %r_18 ) ; :20 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 19, i32 %r_19 ) ; :21 [#uses=0] + ret i32 0 } diff --git a/test/CodeGen/Generic/print-mul.ll b/test/CodeGen/Generic/print-mul.ll index 911c73e..1d9452a 100644 --- a/test/CodeGen/Generic/print-mul.ll +++ b/test/CodeGen/Generic/print-mul.ll @@ -1,35 +1,32 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -%a_str = internal constant [8 x sbyte] c"a = %d\0A\00" -%b_str = internal constant [8 x sbyte] c"b = %d\0A\00" +@a_str = internal constant [8 x i8] c"a = %d\0A\00" ; <[8 x i8]*> [#uses=1] +@b_str = internal constant [8 x i8] c"b = %d\0A\00" ; <[8 x i8]*> [#uses=1] +@a_mul_str = internal constant [13 x i8] c"a * %d = %d\0A\00" ; <[13 x i8]*> [#uses=1] +@A = global i32 2 ; [#uses=1] +@B = global i32 5 ; [#uses=1] -;; mul -%a_mul_str = internal constant [13 x sbyte] c"a * %d = %d\0A\00" +declare i32 @printf(i8*, ...) -declare int %printf(sbyte*, ...) -%A = global int 2 -%B = global int 5 - -int %main() { +define i32 @main() { entry: - %a = load int* %A - %b = load int* %B - %a_s = getelementptr [8 x sbyte]* %a_str, long 0, long 0 - %b_s = getelementptr [8 x sbyte]* %b_str, long 0, long 0 - %a_mul_s = getelementptr [13 x sbyte]* %a_mul_str, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %a_s, int %a) - call int (sbyte*, ...)* %printf(sbyte* %b_s, int %b) - br label %shl_test + %a = load i32* @A ; [#uses=2] + %b = load i32* @B ; [#uses=1] + %a_s = getelementptr [8 x i8]* @a_str, i64 0, i64 0 ; [#uses=1] + %b_s = getelementptr [8 x i8]* @b_str, i64 0, i64 0 ; [#uses=1] + %a_mul_s = getelementptr [13 x i8]* @a_mul_str, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_s, i32 %a ) ; :0 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %b_s, i32 %b ) ; :1 [#uses=0] + br label %shl_test -shl_test: - ;; test mul by 0-255 - %s = phi int [ 0, %entry ], [ %s_inc, %shl_test ] - %result = mul int %a, %s - call int (sbyte*, ...)* %printf(sbyte* %a_mul_s, int %s, int %result) - %s_inc = add int %s, 1 - %done = seteq int %s, 256 - br bool %done, label %fini, label %shl_test +shl_test: ; preds = %shl_test, %entry + %s = phi i32 [ 0, %entry ], [ %s_inc, %shl_test ] ; [#uses=4] + %result = mul i32 %a, %s ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_mul_s, i32 %s, i32 %result ) ; :2 [#uses=0] + %s_inc = add i32 %s, 1 ; [#uses=1] + %done = icmp eq i32 %s, 256 ; [#uses=1] + br i1 %done, label %fini, label %shl_test -fini: - ret int 0 +fini: ; preds = %shl_test + ret i32 0 } diff --git a/test/CodeGen/Generic/print-shift.ll b/test/CodeGen/Generic/print-shift.ll index 4f699d5..8992e8d 100644 --- a/test/CodeGen/Generic/print-shift.ll +++ b/test/CodeGen/Generic/print-shift.ll @@ -1,35 +1,34 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -%a_str = internal constant [8 x sbyte] c"a = %d\0A\00" -%b_str = internal constant [8 x sbyte] c"b = %d\0A\00" +@a_str = internal constant [8 x i8] c"a = %d\0A\00" ; <[8 x i8]*> [#uses=1] +@b_str = internal constant [8 x i8] c"b = %d\0A\00" ; <[8 x i8]*> [#uses=1] +@a_shl_str = internal constant [14 x i8] c"a << %d = %d\0A\00" ; <[14 x i8]*> [#uses=1] +@A = global i32 2 ; [#uses=1] +@B = global i32 5 ; [#uses=1] -;; shl -%a_shl_str = internal constant [14 x sbyte] c"a << %d = %d\0A\00" +declare i32 @printf(i8*, ...) -declare int %printf(sbyte*, ...) -%A = global int 2 -%B = global int 5 - -int %main() { +define i32 @main() { entry: - %a = load int* %A - %b = load int* %B - %a_s = getelementptr [8 x sbyte]* %a_str, long 0, long 0 - %b_s = getelementptr [8 x sbyte]* %b_str, long 0, long 0 - %a_shl_s = getelementptr [14 x sbyte]* %a_shl_str, long 0, long 0 - call int (sbyte*, ...)* %printf(sbyte* %a_s, int %a) - call int (sbyte*, ...)* %printf(sbyte* %b_s, int %b) - br label %shl_test + %a = load i32* @A ; [#uses=2] + %b = load i32* @B ; [#uses=1] + %a_s = getelementptr [8 x i8]* @a_str, i64 0, i64 0 ; [#uses=1] + %b_s = getelementptr [8 x i8]* @b_str, i64 0, i64 0 ; [#uses=1] + %a_shl_s = getelementptr [14 x i8]* @a_shl_str, i64 0, i64 0 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_s, i32 %a ) ; :0 [#uses=0] + call i32 (i8*, ...)* @printf( i8* %b_s, i32 %b ) ; :1 [#uses=0] + br label %shl_test -shl_test: - ;; test left shifts 0-31 - %s = phi ubyte [ 0, %entry ], [ %s_inc, %shl_test ] - %result = shl int %a, ubyte %s - call int (sbyte*, ...)* %printf(sbyte* %a_shl_s, ubyte %s, int %result) - %s_inc = add ubyte %s, 1 - %done = seteq ubyte %s, 32 - br bool %done, label %fini, label %shl_test +shl_test: ; preds = %shl_test, %entry + %s = phi i8 [ 0, %entry ], [ %s_inc, %shl_test ] ; [#uses=4] + %shift.upgrd.1 = zext i8 %s to i32 ; [#uses=1] + %result = shl i32 %a, %shift.upgrd.1 ; [#uses=1] + call i32 (i8*, ...)* @printf( i8* %a_shl_s, i8 %s, i32 %result ) ; :2 [#uses=0] + %s_inc = add i8 %s, 1 ; [#uses=1] + %done = icmp eq i8 %s, 32 ; [#uses=1] + br i1 %done, label %fini, label %shl_test -fini: - ret int 0 +fini: ; preds = %shl_test + ret i32 0 } + diff --git a/test/CodeGen/Generic/ret0.ll b/test/CodeGen/Generic/ret0.ll index 4d0d10b..489f31c 100644 --- a/test/CodeGen/Generic/ret0.ll +++ b/test/CodeGen/Generic/ret0.ll @@ -1,5 +1,5 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -int %main() { - ret int 0 +define i32 @main() { + ret i32 0 } diff --git a/test/CodeGen/Generic/ret42.ll b/test/CodeGen/Generic/ret42.ll index 88d3c98..0cbe176 100644 --- a/test/CodeGen/Generic/ret42.ll +++ b/test/CodeGen/Generic/ret42.ll @@ -1,5 +1,5 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc +; RUN: llvm-as < %s | llc -int %main() { - ret int 42 +define i32 @main() { + ret i32 42 } diff --git a/test/CodeGen/Generic/sched.ll b/test/CodeGen/Generic/sched.ll index f66e9f0..2b6746c 100644 --- a/test/CodeGen/Generic/sched.ll +++ b/test/CodeGen/Generic/sched.ll @@ -1,33 +1,27 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc -implementation -declare int "printf"(sbyte*, int, float) +declare i32 @printf(i8*, i32, float) +define i32 @testissue(i32 %i, float %x, float %y) { + br label %bb1 -int "testissue"(int %i, float %x, float %y) -begin - br label %bb1 -bb1: - %x1 = mul float %x, %y ;; x1 - %y1 = mul float %y, 0.75 ;; y1 - %z1 = add float %x1, %y1 ;; z1 = x1 + y1 - - %x2 = mul float %x, 0.5 ;; x2 - %y2 = mul float %y, 0x3FECCCCCC0000000 ;; y2 - %z2 = add float %x2, %y2 ;; z2 = x2 + y2 - - %z3 = add float %z1, %z2 ;; z3 = z1 + z2 - - %i1 = shl int %i, ubyte 3 ;; i1 - %j1 = add int %i, 7 ;; j1 - %m1 = add int %i1, %j1 ;; k1 = i1 + j1 -;; %m1 = div int %k1, 99 ;; m1 = k1 / 99 - - %b = setle int %m1, 6 ;; (m1 <= 6)? - br bool %b, label %bb1, label %bb2 +bb1: ; preds = %bb1, %0 + %x1 = mul float %x, %y ; [#uses=1] + %y1 = mul float %y, 7.500000e-01 ; [#uses=1] + %z1 = add float %x1, %y1 ; [#uses=1] + %x2 = mul float %x, 5.000000e-01 ; [#uses=1] + %y2 = mul float %y, 0x3FECCCCCC0000000 ; [#uses=1] + %z2 = add float %x2, %y2 ; [#uses=1] + %z3 = add float %z1, %z2 ; [#uses=1] + %i1 = shl i32 %i, 3 ; [#uses=1] + %j1 = add i32 %i, 7 ; [#uses=1] + %m1 = add i32 %i1, %j1 ; [#uses=2] + %b = icmp sle i32 %m1, 6 ; [#uses=1] + br i1 %b, label %bb1, label %bb2 + +bb2: ; preds = %bb1 + %Msg = inttoptr i64 0 to i8* ; [#uses=1] + call i32 @printf( i8* %Msg, i32 %m1, float %z3 ) ; :1 [#uses=0] + ret i32 0 +} -bb2: - %Msg = cast ulong 0 to sbyte * - call int %printf(sbyte* %Msg, int %m1, float %z3) - ret int 0 -end diff --git a/test/CodeGen/Generic/select.ll b/test/CodeGen/Generic/select.ll index 87ea405..fc573f3 100644 --- a/test/CodeGen/Generic/select.ll +++ b/test/CodeGen/Generic/select.ll @@ -1,43 +1,35 @@ -; RUN: llvm-upgrade %s | llvm-as | llc +; RUN: llvm-as < %s | llc -%AConst = constant int 123 - -%Domain = type { sbyte*, int, int*, int, int, int*, %Domain* } - -implementation +%Domain = type { i8*, i32, i32*, i32, i32, i32*, %Domain* } +@AConst = constant i32 123 ; [#uses=1] ; Test setting values of different constants in registers. ; -void "testConsts"(int %N, float %X) -begin -;