diff options
90 files changed, 1482 insertions, 1460 deletions
diff --git a/test/CodeGen/X86/2006-08-07-CycleInDAG.ll b/test/CodeGen/X86/2006-08-07-CycleInDAG.ll index c66d553c11..194cd6681b 100644 --- a/test/CodeGen/X86/2006-08-07-CycleInDAG.ll +++ b/test/CodeGen/X86/2006-08-07-CycleInDAG.ll @@ -1,34 +1,31 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 - -%struct.foo = type opaque - -implementation - -fastcc int %test(%struct.foo* %v, %struct.foo* %vi) { - br bool false, label %ilog2.exit, label %cond_true.i - -cond_true.i: ; preds = %entry - ret int 0 - -ilog2.exit: ; preds = %entry - %tmp24.i = load int* null ; <int> [#uses=1] - %tmp13.i12.i = tail call double %ldexp( double 0.000000e+00, int 0 ) ; <double> [#uses=1] - %tmp13.i13.i = cast double %tmp13.i12.i to float ; <float> [#uses=1] - %tmp11.s = load int* null ; <int> [#uses=1] - %tmp11.i = cast int %tmp11.s to uint ; <uint> [#uses=1] - %n.i = cast int %tmp24.i to uint ; <uint> [#uses=1] - %tmp13.i7 = mul uint %tmp11.i, %n.i ; <uint> [#uses=1] - %tmp.i8 = tail call sbyte* %calloc( uint %tmp13.i7, uint 4 ) ; <sbyte*> [#uses=0] - br bool false, label %bb224.preheader.i, label %bb.i +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 + %struct.foo = type opaque + +define fastcc i32 @test(%struct.foo* %v, %struct.foo* %vi) { + br i1 false, label %ilog2.exit, label %cond_true.i + +cond_true.i: ; preds = %0 + ret i32 0 + +ilog2.exit: ; preds = %0 + %tmp24.i = load i32* null ; <i32> [#uses=1] + %tmp13.i12.i = tail call double @ldexp( double 0.000000e+00, i32 0 ) ; <double> [#uses=1] + %tmp13.i13.i = fptrunc double %tmp13.i12.i to float ; <float> [#uses=1] + %tmp11.s = load i32* null ; <i32> [#uses=1] + %tmp11.i = bitcast i32 %tmp11.s to i32 ; <i32> [#uses=1] + %n.i = bitcast i32 %tmp24.i to i32 ; <i32> [#uses=1] + %tmp13.i7 = mul i32 %tmp11.i, %n.i ; <i32> [#uses=1] + %tmp.i8 = tail call i8* @calloc( i32 %tmp13.i7, i32 4 ) ; <i8*> [#uses=0] + br i1 false, label %bb224.preheader.i, label %bb.i bb.i: ; preds = %ilog2.exit - ret int 0 + ret i32 0 bb224.preheader.i: ; preds = %ilog2.exit - %tmp165.i = cast float %tmp13.i13.i to double ; <double> [#uses=0] - ret int 0 + %tmp165.i = fpext float %tmp13.i13.i to double ; <double> [#uses=0] + ret i32 0 } -declare sbyte* %calloc(uint, uint) +declare i8* @calloc(i32, i32) -declare double %ldexp(double, int) +declare double @ldexp(double, i32) diff --git a/test/CodeGen/X86/2006-08-16-CycleInDAG.ll b/test/CodeGen/X86/2006-08-16-CycleInDAG.ll index c0668a9dbd..f2a8855245 100644 --- a/test/CodeGen/X86/2006-08-16-CycleInDAG.ll +++ b/test/CodeGen/X86/2006-08-16-CycleInDAG.ll @@ -1,23 +1,23 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 +; RUN: llvm-as < %s | llc -march=x86 + %struct.expr = type { %struct.rtx_def*, i32, %struct.expr*, %struct.occr*, %struct.occr*, %struct.rtx_def* } + %struct.hash_table = type { %struct.expr**, i32, i32, i32 } + %struct.occr = type { %struct.occr*, %struct.rtx_def*, i8, i8 } + %struct.rtx_def = type { i16, i8, i8, %struct.u } + %struct.u = type { [1 x i64] } - %struct.expr = type { %struct.rtx_def*, int, %struct.expr*, %struct.occr*, %struct.occr*, %struct.rtx_def* } - %struct.hash_table = type { %struct.expr**, uint, uint, int } - %struct.occr = type { %struct.occr*, %struct.rtx_def*, sbyte, sbyte } - %struct.rtx_def = type { ushort, ubyte, ubyte, %struct.u } - %struct.u = type { [1 x long] } +define void @test() { + %tmp = load i32* null ; <i32> [#uses=1] + %tmp8 = call i32 @hash_rtx( ) ; <i32> [#uses=1] + %tmp11 = urem i32 %tmp8, %tmp ; <i32> [#uses=1] + br i1 false, label %cond_next, label %return -void %test() { - %tmp = load uint* null ; <uint> [#uses=1] - %tmp8 = call uint %hash_rtx( ) ; <uint> [#uses=1] - %tmp11 = rem uint %tmp8, %tmp ; <uint> [#uses=1] - br bool false, label %cond_next, label %return - -cond_next: ; preds = %entry - %tmp17 = getelementptr %struct.expr** null, uint %tmp11 ; <%struct.expr**> [#uses=0] +cond_next: ; preds = %0 + %gep.upgrd.1 = zext i32 %tmp11 to i64 ; <i64> [#uses=1] + %tmp17 = getelementptr %struct.expr** null, i64 %gep.upgrd.1 ; <%struct.expr**> [#uses=0] ret void -return: ; preds = %entry +return: ; preds = %0 ret void } -declare uint %hash_rtx() +declare i32 @hash_rtx() diff --git a/test/CodeGen/X86/2006-08-21-ExtraMovInst.ll b/test/CodeGen/X86/2006-08-21-ExtraMovInst.ll index af30ea4ee4..c1d81d52b9 100644 --- a/test/CodeGen/X86/2006-08-21-ExtraMovInst.ll +++ b/test/CodeGen/X86/2006-08-21-ExtraMovInst.ll @@ -1,16 +1,17 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mcpu=i386 | \ +; RUN: llvm-as < %s | llc -march=x86 -mcpu=i386 | \ ; RUN: not grep {movl %eax, %edx} -int %foo(int %t, int %C) { +define i32 @foo(i32 %t, i32 %C) { entry: br label %cond_true cond_true: ; preds = %cond_true, %entry - %t_addr.0.0 = phi int [ %t, %entry ], [ %tmp7, %cond_true ] ; <int> [#uses=2] - %tmp7 = add int %t_addr.0.0, 1 ; <int> [#uses=1] - %tmp = setgt int %C, 39 ; <bool> [#uses=1] - br bool %tmp, label %bb12, label %cond_true + %t_addr.0.0 = phi i32 [ %t, %entry ], [ %tmp7, %cond_true ] ; <i32> [#uses=2] + %tmp7 = add i32 %t_addr.0.0, 1 ; <i32> [#uses=1] + %tmp = icmp sgt i32 %C, 39 ; <i1> [#uses=1] + br i1 %tmp, label %bb12, label %cond_true bb12: ; preds = %cond_true - ret int %t_addr.0.0 + ret i32 %t_addr.0.0 } + diff --git a/test/CodeGen/X86/2006-09-01-CycleInDAG.ll b/test/CodeGen/X86/2006-09-01-CycleInDAG.ll index 2e0a69a551..dd21c0455d 100644 --- a/test/CodeGen/X86/2006-09-01-CycleInDAG.ll +++ b/test/CodeGen/X86/2006-09-01-CycleInDAG.ll @@ -1,113 +1,108 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 - -target endian = little -target pointersize = 32 +; RUN: llvm-as < %s | llc -march=x86 +target datalayout = "e-p:32:32" target triple = "i686-apple-darwin8" - %struct.CUMULATIVE_ARGS = type { int, int, int, int, int, int, int, int, int, int, int, int } - %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.VEC_edge = type { uint, uint, [1 x %struct.edge_def*] } - %struct.VEC_tree = type { uint, uint, [1 x %struct.tree_node*] } + %struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } + %struct.VEC_edge = type { i32, i32, [1 x %struct.edge_def*] } + %struct.VEC_tree = type { i32, i32, [1 x %struct.tree_node*] } %struct.__sFILEX = type opaque - %struct.__sbuf = type { ubyte*, int } - %struct._obstack_chunk = type { sbyte*, %struct._obstack_chunk*, [4 x sbyte] } - %struct._var_map = type { %struct.partition_def*, int*, int*, %struct.tree_node**, uint, uint, int* } - %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* } - %struct.bitmap_iterator = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, uint, uint } + %struct.__sbuf = type { i8*, i32 } + %struct._obstack_chunk = type { i8*, %struct._obstack_chunk*, [4 x i8] } + %struct._var_map = type { %struct.partition_def*, i32*, i32*, %struct.tree_node**, i32, i32, i32* } + %struct.basic_block_def = type { %struct.rtx_def*, %struct.rtx_def*, %struct.tree_node*, %struct.VEC_edge*, %struct.VEC_edge*, %struct.bitmap_head_def*, %struct.bitmap_head_def*, i8*, %struct.loop*, [2 x %struct.et_node*], %struct.basic_block_def*, %struct.basic_block_def*, %struct.reorder_block_def*, %struct.bb_ann_d*, i64, i32, i32, i32, i32 } + %struct.bb_ann_d = type { %struct.tree_node*, i8, %struct.edge_prediction* } + %struct.bitmap_element_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, [4 x i32] } + %struct.bitmap_head_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, %struct.bitmap_obstack* } + %struct.bitmap_iterator = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, i32 } %struct.bitmap_obstack = type { %struct.bitmap_element_def*, %struct.bitmap_head_def*, %struct.obstack } %struct.block_stmt_iterator = type { %struct.tree_stmt_iterator, %struct.basic_block_def* } - %struct.coalesce_list_d = type { %struct._var_map*, %struct.partition_pair_d**, bool } + %struct.coalesce_list_d = type { %struct._var_map*, %struct.partition_pair_d**, i1 } %struct.conflict_graph_def = type opaque %struct.dataflow_d = type { %struct.varray_head_tag*, [2 x %struct.tree_node*] } %struct.def_operand_ptr = type { %struct.tree_node** } - %struct.def_optype_d = type { uint, [1 x %struct.def_operand_ptr] } + %struct.def_optype_d = type { i32, [1 x %struct.def_operand_ptr] } %struct.die_struct = type opaque - %struct.edge_def = type { %struct.basic_block_def*, %struct.basic_block_def*, %struct.edge_def_insns, sbyte*, %struct.location_t*, int, int, long, uint } + %struct.edge_def = type { %struct.basic_block_def*, %struct.basic_block_def*, %struct.edge_def_insns, i8*, %struct.__sbuf*, i32, i32, i64, i32 } %struct.edge_def_insns = type { %struct.rtx_def* } - %struct.edge_iterator = type { uint, %struct.VEC_edge** } - %struct.edge_prediction = type { %struct.edge_prediction*, %struct.edge_def*, uint, int } + %struct.edge_iterator = type { i32, %struct.VEC_edge** } + %struct.edge_prediction = type { %struct.edge_prediction*, %struct.edge_def*, i32, i32 } %struct.eh_status = type opaque %struct.elt_list = 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.__sbuf, 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.ht_identifier = type { ubyte*, uint, 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.__sbuf, %struct.varray_head_tag*, %struct.tree_node*, i8, i8, i8 } + %struct.ht_identifier = type { i8*, i32, i32 } %struct.initial_value_struct = type opaque %struct.lang_decl = type opaque %struct.lang_type = type opaque %struct.language_function = type opaque - %struct.location_t = type { sbyte*, int } + %struct.location_t = type { i8*, i32 } %struct.loop = type opaque - %struct.machine_function = type { int, uint, sbyte*, int, int } - %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.partition_def = type { int, [1 x %struct.partition_elem] } - %struct.partition_elem = type { int, %struct.partition_elem*, uint } - %struct.partition_pair_d = type { int, int, int, %struct.partition_pair_d* } - %struct.phi_arg_d = type { %struct.tree_node*, bool } + %struct.machine_function = type { i32, i32, i8*, i32, i32 } + %struct.obstack = type { i32, %struct._obstack_chunk*, i8*, i8*, i8*, i32, i32, %struct._obstack_chunk* (i8*, i32)*, void (i8*, %struct._obstack_chunk*)*, i8*, i8 } + %struct.partition_def = type { i32, [1 x %struct.partition_elem] } + %struct.partition_elem = type { i32, %struct.partition_elem*, i32 } + %struct.partition_pair_d = type { i32, i32, i32, %struct.partition_pair_d* } + %struct.phi_arg_d = type { %struct.tree_node*, i1 } %struct.pointer_set_t = type opaque - %struct.ptr_info_def = type { ubyte, %struct.bitmap_head_def*, %struct.tree_node* } + %struct.ptr_info_def = type { i8, %struct.bitmap_head_def*, %struct.tree_node* } %struct.real_value = type opaque %struct.reg_info_def = type opaque - %struct.reorder_block_def = type { %struct.rtx_def*, %struct.rtx_def*, %struct.basic_block_def*, %struct.basic_block_def*, %struct.basic_block_def*, int, int, int } + %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 opaque %struct.rtx_def = type opaque %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.ssa_op_iter = type { int, int, int, int, int, int, int, int, int, int, int, int, int, int, %struct.stmt_operands_d*, bool } - %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.simple_bitmap_def = type { i32, i32, i32, [1 x i64] } + %struct.ssa_op_iter = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.stmt_operands_d*, i1 } + %struct.stmt_ann_d = type { %struct.tree_ann_common_d, i8, %struct.basic_block_def*, %struct.stmt_operands_d, %struct.dataflow_d*, %struct.bitmap_head_def*, i32 } %struct.stmt_operands_d = typ |