diff options
29 files changed, 137 insertions, 125 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html index a57f242605..699c11b392 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -760,22 +760,22 @@ a power of 2.</p> <div class="doc_code"> <pre> -%someFunc = i16 (i8 sext %someParam) zext -%someFunc = i16 (i8 zext %someParam) zext +%someFunc = i16 (i8 signext %someParam) zeroext +%someFunc = i16 (i8 zeroext %someParam) zeroext </pre> </div> <p>Note that the two function types above are unique because the parameter has - a different attribute (sext in the first one, zext in the second). Also note - that the attribute for the function result (zext) comes immediately after the - argument list.</p> + a different attribute (<tt>signext</tt> in the first one, <tt>zeroext</tt> in + the second). Also note that the attribute for the function result + (<tt>zeroext</tt>) comes immediately after the argument list.</p> <p>Currently, only the following parameter attributes are defined:</p> <dl> - <dt><tt>zext</tt></dt> + <dt><tt>zeroext</tt></dt> <dd>This indicates that the parameter should be zero extended just before a call to this function.</dd> - <dt><tt>sext</tt></dt> + <dt><tt>signext</tt></dt> <dd>This indicates that the parameter should be sign extended just before a call to this function.</dd> <dt><tt>inreg</tt></dt> @@ -1131,7 +1131,7 @@ Variable argument functions can access their arguments with the <a <td class="left">function taking an <tt>i32</tt>, returning an <tt>i32</tt> </td> </tr><tr class="layout"> - <td class="left"><tt>float (i16 sext, i32 *) * + <td class="left"><tt>float (i16 signext, i32 *) * </tt></td> <td class="left"><a href="#t_pointer">Pointer</a> to a function that takes an <tt>i16</tt> that should be sign extended and a diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l index bc61e97ca9..24467cf606 100644 --- a/lib/AsmParser/Lexer.l +++ b/lib/AsmParser/Lexer.l @@ -225,6 +225,8 @@ coldcc { return COLDCC_TOK; } x86_stdcallcc { return X86_STDCALLCC_TOK; } x86_fastcallcc { return X86_FASTCALLCC_TOK; } +signext { return SIGNEXT; } +zeroext { return ZEROEXT; } inreg { return INREG; } sret { return SRET; } nounwind { return NOUNWIND; } diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index c8790819d3..0936af3a4d 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -1101,7 +1101,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) { %token <OtherOpVal> EXTRACTELEMENT INSERTELEMENT SHUFFLEVECTOR // Function Attributes -%token NORETURN INREG SRET NOUNWIND NOALIAS BYVAL +%token SIGNEXT ZEROEXT NORETURN INREG SRET NOUNWIND NOALIAS BYVAL // Visibility Styles %token DEFAULT HIDDEN PROTECTED @@ -1224,8 +1224,8 @@ OptCallingConv : /*empty*/ { $$ = CallingConv::C; } | CHECK_FOR_ERROR }; -ParamAttr : ZEXT { $$ = ParamAttr::ZExt; } - | SEXT { $$ = ParamAttr::SExt; } +ParamAttr : ZEROEXT { $$ = ParamAttr::ZExt; } + | SIGNEXT { $$ = ParamAttr::SExt; } | INREG { $$ = ParamAttr::InReg; } | SRET { $$ = ParamAttr::StructRet; } | NOALIAS { $$ = ParamAttr::NoAlias; } @@ -1240,7 +1240,8 @@ OptParamAttrs : /* empty */ { $$ = ParamAttr::None; } FuncAttr : NORETURN { $$ = ParamAttr::NoReturn; } | NOUNWIND { $$ = ParamAttr::NoUnwind; } - | ParamAttr + | ZEROEXT { $$ = ParamAttr::ZExt; } + | SIGNEXT { $$ = ParamAttr::SExt; } ; OptFuncAttrs : /* empty */ { $$ = ParamAttr::None; } diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index ab12ae8bfe..dd781964a9 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -90,9 +90,9 @@ std::string ParamAttrsList::getParamAttrsText(uint16_t Attrs) { std::string Result; if (Attrs & ParamAttr::ZExt) - Result += "zext "; + Result += "zeroext "; if (Attrs & ParamAttr::SExt) - Result += "sext "; + Result += "signext "; if (Attrs & ParamAttr::NoReturn) Result += "noreturn "; if (Attrs & ParamAttr::NoUnwind) diff --git a/test/Assembler/2007-07-19-ParamAttrAmbiguity.ll b/test/Assembler/2007-07-19-ParamAttrAmbiguity.ll new file mode 100644 index 0000000000..9c7daa841a --- /dev/null +++ b/test/Assembler/2007-07-19-ParamAttrAmbiguity.ll @@ -0,0 +1,9 @@ +; PR1553 +; RUN: llvm-as < %s > /dev/null +define void @bar() { + %t = call i8 @foo( i8 10 ) + zext i8 %t to i32 + ret void +} + +declare i8 @foo(i8) diff --git a/test/CFrontend/2007-06-18-SextAttrAggregate.c b/test/CFrontend/2007-06-18-SextAttrAggregate.c index 2ba61fff76..2eabd4fcca 100644 --- a/test/CFrontend/2007-06-18-SextAttrAggregate.c +++ b/test/CFrontend/2007-06-18-SextAttrAggregate.c @@ -1,4 +1,4 @@ -// RUN: %llvmgcc %s -o - -S -emit-llvm -O3 | grep {i8 sext} +// RUN: %llvmgcc %s -o - -S -emit-llvm -O3 | grep {i8 signext} // PR1513 struct s{ diff --git a/test/CodeGen/ARM/2007-03-06-AddR7.ll b/test/CodeGen/ARM/2007-03-06-AddR7.ll index 5e136ddb8d..ad3e195a0d 100644 --- a/test/CodeGen/ARM/2007-03-06-AddR7.ll +++ b/test/CodeGen/ARM/2007-03-06-AddR7.ll @@ -9,7 +9,7 @@ %struct.__fooString = type opaque %struct.__fooV = type opaque %struct.fooXBase = type { i32, [4 x i8] } - %struct.fooXClass = type { i32, i8*, void (i8*)*, i8* (%struct.__fooAllocator*, i8*)*, void (i8*)*, i8 (i8*, i8*) zext *, i32 (i8*)*, %struct.__fooString* (i8*, %struct.__fooZ*)*, %struct.__fooString* (i8*)* } + %struct.fooXClass = type { i32, i8*, void (i8*)*, i8* (%struct.__fooAllocator*, i8*)*, void (i8*)*, i8 (i8*, i8*) zeroext *, i32 (i8*)*, %struct.__fooString* (i8*, %struct.__fooZ*)*, %struct.__fooString* (i8*)* } %struct.aa_cache = type { i32, i32, [1 x %struct.aa_method*] } %struct.aa_class = type { %struct.aa_class*, %struct.aa_class*, i8*, i32, i32, i32, %struct.aa_ivar_list*, %struct.aa_method_list**, %struct.aa_cache*, %struct.aa_protocol_list* } %struct.aa_ivar = type { i8*, i8*, i32 } @@ -27,7 +27,7 @@ @str15 = external constant [24 x i8] ; <[24 x i8]*> [#uses=1] -define i8 @test(%struct.__fooY* %calendar, double* %atp, i8* %componentDesc, ...) zext { +define i8 @test(%struct.__fooY* %calendar, double* %atp, i8* %componentDesc, ...) zeroext { entry: %args = alloca i8*, align 4 ; <i8**> [#uses=5] %args4 = bitcast i8** %args to i8* ; <i8*> [#uses=2] @@ -75,12 +75,12 @@ cond_true60: ; preds = %cond_true58 %tmp63 = call %struct.aa_ss* @sel_registerName( i8* getelementptr ([24 x i8]* @str15, i32 0, i32 0) ) ; <%struct.aa_ss*> [#uses=2] store %struct.aa_ss* %tmp63, %struct.aa_ss** @s.10319 %tmp66137 = volatile load i8** %args ; <i8*> [#uses=1] - %tmp73138 = call i8 (i8*, %struct.aa_ss*, ...) zext * bitcast (%struct.aa_object* (%struct.aa_object*, %struct.aa_ss*, ...)* @aa_mm to i8 (i8*, %struct.aa_ss*, ...) zext *)( i8* %tmp6869, %struct.aa_ss* %tmp63, double* %atp, i8* %componentDesc, i8* %tmp66137 ) zext ; <i8> [#uses=1] + %tmp73138 = call i8 (i8*, %struct.aa_ss*, ...) zeroext * bitcast (%struct.aa_object* (%struct.aa_object*, %struct.aa_ss*, ...)* @aa_mm to i8 (i8*, %struct.aa_ss*, ...) zeroext *)( i8* %tmp6869, %struct.aa_ss* %tmp63, double* %atp, i8* %componentDesc, i8* %tmp66137) zeroext ; <i8> [#uses=1] ret i8 %tmp73138 cond_next64: ; preds = %cond_true58 %tmp66 = volatile load i8** %args ; <i8*> [#uses=1] - %tmp73 = call i8 (i8*, %struct.aa_ss*, ...) zext * bitcast (%struct.aa_object* (%struct.aa_object*, %struct.aa_ss*, ...)* @aa_mm to i8 (i8*, %struct.aa_ss*, ...) zext *)( i8* %tmp6869, %struct.aa_ss* %tmp59, double* %atp, i8* %componentDesc, i8* %tmp66 ) zext ; <i8> [#uses=1] + %tmp73 = call i8 (i8*, %struct.aa_ss*, ...) zeroext * bitcast (%struct.aa_object* (%struct.aa_object*, %struct.aa_ss*, ...)* @aa_mm to i8 (i8*, %struct.aa_ss*, ...) zeroext *)( i8* %tmp6869, %struct.aa_ss* %tmp59, double* %atp, i8* %componentDesc, i8* %tmp66 ) zeroext ; <i8> [#uses=1] ret i8 %tmp73 cond_true111: ; preds = %cond_true111, %bb48 @@ -98,13 +98,13 @@ cond_true111: ; preds = %cond_true111, %bb48 bb114: ; preds = %cond_true111, %bb48 call void @llvm.va_end( i8* %args4 ) - %tmp122 = call i8 @_fooYCCV( %struct.__fooY* %calendar, double* %atp, i8* %componentDesc, i32* %tmp92, i32 %tmp78 ) zext ; <i8> [#uses=1] + %tmp122 = call i8 @_fooYCCV( %struct.__fooY* %calendar, double* %atp, i8* %componentDesc, i32* %tmp92, i32 %tmp78 ) zeroext ; <i8> [#uses=1] ret i8 %tmp122 } declare i32 @_fooXRegisterClass(%struct.fooXClass*) -declare i8 @_fooYCCV(%struct.__fooY*, double*, i8*, i32*, i32) zext +declare i8 @_fooYCCV(%struct.__fooY*, double*, i8*, i32*, i32) zeroext declare %struct.aa_object* @aa_mm(%struct.aa_object*, %struct.aa_ss*, ...) diff --git a/test/CodeGen/ARM/2007-03-26-RegScavengerAssert.ll b/test/CodeGen/ARM/2007-03-26-RegScavengerAssert.ll index 5a62401fe1..6d3f6404af 100644 --- a/test/CodeGen/ARM/2007-03-26-RegScavengerAssert.ll +++ b/test/CodeGen/ARM/2007-03-26-RegScavengerAssert.ll @@ -47,12 +47,12 @@ target triple = "arm-linux-gnueabi" %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.lang_decl = type opaque - %struct.lang_hooks = type { i8*, i32, i32 (i32)*, i32 (i32, i8**)*, void (%struct.diagnostic_context*)*, i32 (i32, i8*, i32)*, i8 (i8*, i32) zext *, i8 (i8**) zext *, i8 () zext *, void ()*, void ()*, void (i32)*, void ()*, i64 (%struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, %struct.rtx_def* (%struct.tree_node*, %struct.rtx_def*, i32, i32, %struct.rtx_def**)*, i32 (%struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, i32 (%struct.rtx_def*, %struct.tree_node*)*, void (%struct.tree_node*)*, i8 (%struct.tree_node*) zext *, %struct.tree_node* (%struct.tree_node*)*, void (%struct.tree_node*)*, void (%struct.tree_node*)*, i8 () zext *, i8, i8, void ()*, void (%struct.FILE*, %struct.tree_node*, i32)*, void (%struct.FILE*, %struct.tree_node*, i32)*, void (%struct.FILE*, %struct.tree_node*, i32)*, void (%struct.FILE*, %struct.tree_node*, i32)*, i8* (%struct.tree_node*, i32)*, i32 (%struct.tree_node*, %struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, void (%struct.diagnostic_context*, i8*)*, %struct.tree_node* (%struct.tree_node*)*, i64 (i64)*, %struct.attribute_spec*, %struct.attribute_spec*, %struct.attribute_spec*, i32 (%struct.tree_node*)*, %struct.lang_hooks_for_functions, %struct.lang_hooks_for_tree_inlining, %struct.lang_hooks_for_callgraph, %struct.lang_hooks_for_tree_dump, %struct.lang_hooks_for_decls, %struct.lang_hooks_for_types, i32 (%struct.tree_node**, %struct.tree_node**, %struct.tree_node**)*, %struct.tree_node* (%struct.tree_node*, %struct.tree_node*)*, %struct.tree_node* (i8*, %struct.tree_node*, i32, i32, i8*, %struct.tree_node*)* } + %struct.lang_hooks = type { i8*, i32, i32 (i32)*, i32 (i32, i8**)*, void (%struct.diagnostic_context*)*, i32 (i32, i8*, i32)*, i8 (i8*, i32) zeroext *, i8 (i8**) zeroext *, i8 () zeroext *, void ()*, void ()*, void (i32)*, void ()*, i64 (%struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, %struct.rtx_def* (%struct.tree_node*, %struct.rtx_def*, i32, i32, %struct.rtx_def**)*, i32 (%struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, i32 (%struct.rtx_def*, %struct.tree_node*)*, void (%struct.tree_node*)*, i8 (%struct.tree_node*) zeroext *, %struct.tree_node* (%struct.tree_node*)*, void (%struct.tree_node*)*, void (%struct.tree_node*)*, i8 () zeroext *, i8, i8, void ()*, void (%struct.FILE*, %struct.tree_node*, i32)*, void (%struct.FILE*, %struct.tree_node*, i32)*, void (%struct.FILE*, %struct.tree_node*, i32)*, void (%struct.FILE*, %struct.tree_node*, i32)*, i8* (%struct.tree_node*, i32)*, i32 (%struct.tree_node*, %struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, void (%struct.diagnostic_context*, i8*)*, %struct.tree_node* (%struct.tree_node*)*, i64 (i64)*, %struct.attribute_spec*, %struct.attribute_spec*, %struct.attribute_spec*, i32 (%struct.tree_node*)*, %struct.lang_hooks_for_functions, %struct.lang_hooks_for_tree_inlining, %struct.lang_hooks_for_callgraph, %struct.lang_hooks_for_tree_dump, %struct.lang_hooks_for_decls, %struct.lang_hooks_for_types, i32 (%struct.tree_node**, %struct.tree_node**, %struct.tree_node**)*, %struct.tree_node* (%struct.tree_node*, %struct.tree_node*)*, %struct.tree_node* (i8*, %struct.tree_node*, i32, i32, i8*, %struct.tree_node*)* } %struct.lang_hooks_for_callgraph = type { %struct.tree_node* (%struct.tree_node**, i32*, %struct.tree_node*)*, void (%struct.tree_node*)* } - %struct.lang_hooks_for_decls = type { i32 ()*, void (%struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, %struct.tree_node* ()*, i8 (%struct.tree_node*) zext *, void ()*, void (%struct.tree_node*)*, i8 (%struct.tree_node*) zext *, i8* (%struct.tree_node*)* } - %struct.lang_hooks_for_functions = type { void (%struct.function*)*, void (%struct.function*)*, void (%struct.function*)*, void (%struct.function*)*, i8 (%struct.tree_node*) zext * } - %struct.lang_hooks_for_tree_dump = type { i8 (i8*, %struct.tree_node*) zext *, i32 (%struct.tree_node*)* } - %struct.lang_hooks_for_tree_inlining = type { %struct.tree_node* (%struct.tree_node**, i32*, %struct.tree_node* (%struct.tree_node**, i32*, i8*)*, i8*, %struct.pointer_set_t*)*, i32 (%struct.tree_node**)*, i32 (%struct.tree_node*)*, %struct.tree_node* (i8*, %struct.tree_node*)*, i32 (%struct.tree_node*, %struct.tree_node*)*, i32 (%struct.tree_node*)*, i8 (%struct.tree_node*, %struct.tree_node*) zext *, i32 (%struct.tree_node*)*, void (%struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i32)* } + %struct.lang_hooks_for_decls = type { i32 ()*, void (%struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, %struct.tree_node* ()*, i8 (%struct.tree_node*) zeroext *, void ()*, void (%struct.tree_node*)*, i8 (%struct.tree_node*) zeroext *, i8* (%struct.tree_node*)* } + %struct.lang_hooks_for_functions = type { void (%struct.function*)*, void (%struct.function*)*, void (%struct.function*)*, void (%struct.function*)*, i8 (%struct.tree_node*) zeroext * } + %struct.lang_hooks_for_tree_dump = type { i8 (i8*, %struct.tree_node*) zeroext *, i32 (%struct.tree_node*)* } + %struct.lang_hooks_for_tree_inlining = type { %struct.tree_node* (%struct.tree_node**, i32*, %struct.tree_node* (%struct.tree_node**, i32*, i8*)*, i8*, %struct.pointer_set_t*)*, i32 (%struct.tree_node**)*, i32 (%struct.tree_node*)*, %struct.tree_node* (i8*, %struct.tree_node*)*, i32 (%struct.tree_node*, %struct.tree_node*)*, i32 (%struct.tree_node*)*, i8 (%struct.tree_node*, %struct.tree_node*) zeroext *, i32 (%struct.tree_node*)*, void (%struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i32)* } %struct.lang_hooks_for_types = type { %struct.tree_node* (i32)*, %struct.tree_node* (i32, i32)*, %struct.tree_node* (i32, i32)*, %struct.tree_node* (%struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, %struct.tree_node* (i32, %struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, void (%struct.tree_node*, i8*)*, void (%struct.tree_node*, %struct.tree_node*)*, %struct.tree_node* (%struct.tree_node*)*, i8 } %struct.lang_type = type opaque %struct.language_function = type opaque @@ -64,7 +64,7 @@ target triple = "arm-linux-gnueabi" %struct.output_buffer = type { %struct.obstack, %struct.FILE*, i32, [128 x i8] } %struct.phi_arg_d = type { %struct.tree_node*, i8 } %struct.pointer_set_t = type opaque - %struct.pretty_printer = type { %struct.output_buffer*, i8*, i32, i32, i32, i32, i32, i8 (%struct.pretty_printer*, %struct.text_info*) zext *, i8, i8 } + %struct.pretty_printer = type { %struct.output_buffer*, i8*, i32, i32, i32, i32, i32, i8 (%struct.pretty_printer*, %struct.text_info*) zeroext *, i8, i8 } %struct.ptr_info_def = type { i8, %struct.bitmap_head_def*, %struct.tree_node* } %struct.real_value = type { i8, [3 x i8], [5 x i32] } %struct.reg_attrs = type { %struct.tree_node*, i64 } @@ -354,7 +354,7 @@ declare i64 @get_alias_set(%struct.tree_node*) declare i32 @alias_sets_conflict_p(i64, i64) -declare fastcc i8 @cpt_same_type(%struct.tree_node*, %struct.tree_node*) zext +declare fastcc i8 @cpt_same_type(%struct.tree_node*, %struct.tree_node*) zeroext declare %struct.tree_node* @check_pointer_types_r(%struct.tree_node**, i32*, i8*) @@ -380,7 +380,7 @@ declare fastcc %struct.tree_node* @shortcut_cond_expr(%struct.tree_node*) declare %struct.tree_node* @expr_last(%struct.tree_node*) -declare i8 @block_may_fallthru(%struct.tree_node*) zext +declare i8 @block_may_fallthru(%struct.tree_node*) zeroext declare fastcc void @gimple_pop_condition(%struct.tree_node**) @@ -388,9 +388,9 @@ declare %struct.tree_node* @gimple_build_eh_filter(%struct.tree_node*, %struct.t declare void @annotate_all_with_locus(%struct.tree_node**, i32, i32) -declare fastcc %struct.tree_node* @internal_get_tmp_var(%struct.tree_node*, %struct.tree_node**, %struct.tree_node**, i8 zext ) +declare fastcc %struct.tree_node* @internal_get_tmp_var(%struct.tree_node*, %struct.tree_node**, %struct.tree_node**, i8 zeroext ) -define i32 @gimplify_expr(%struct.tree_node** %expr_p, %struct.tree_node** %pre_p, %struct.tree_node** %post_p, i8 (%struct.tree_node*) zext * %gimple_test_f, i32 %fallback) { +define i32 @gimplify_expr(%struct.tree_node** %expr_p, %struct.tree_node** %pre_p, %struct.tree_node** %post_p, i8 (%struct.tree_node*) zeroext * %gimple_test_f, i32 %fallback) { entry: %internal_post = alloca %struct.tree_node*, align 4 ; <%struct.tree_node**> [#uses=2] %pre_p_addr.0 = select i1 false, %struct.tree_node** null, %struct.tree_node** %pre_p ; <%struct.tree_node**> [#uses=7] @@ -598,7 +598,7 @@ cond_next3113: ; preds = %cond_next3074 ret i32 0 bb3351: ; preds = %cond_next3074 - %tmp3354 = call i8 @tree_ssa_useless_type_conversion( %struct.tree_node* %tmp2554 ) zext ; <i8> [#uses=1] + %tmp3354 = call i8 @tree_ssa_useless_type_conversion( %struct.tree_node* %tmp2554 ) zeroext ; <i8> [#uses=1] icmp eq i8 %tmp3354, 0 ; <i1>:7 [#uses=1] %tmp3424 = load i32* null ; <i32> [#uses=1] br i1 %7, label %cond_next3417, label %cond_true3356 @@ -640,7 +640,7 @@ cond_true4315: ; preds = %cond_next4300 unreachable cond_next4327: ; preds = %cond_next4300 - %tmp4336 = call i32 @gimplify_expr( %struct.tree_node** null, %struct.tree_node** %pre_p_addr.0, %struct.tree_node** %post_p_addr.0, i8 (%struct.tree_node*) zext * @is_gimple_val, i32 1 ) ; <i32> [#uses=0] + %tmp4336 = call i32 @gimplify_expr( %struct.tree_node** null, %struct.tree_node** %pre_p_addr.0, %struct.tree_node** %post_p_addr.0, i8 (%struct.tree_node*) zeroext * @is_gimple_val, i32 1 ) ; <i32> [#uses=0] ret i32 0 bb4339: ; preds = %cond_next298 @@ -714,8 +714,8 @@ bb6296: ; preds = %cond_next298 cond_next6474: ; preds = %cond_next298 icmp eq %struct.tree_node** %internal_post, %post_p_addr.0 ; <i1>:11 [#uses=1] %iftmp.381.0 = select i1 %11, %struct.tree_node** null, %struct.tree_node** %post_p_addr.0 ; <%struct.tree_node**> [#uses=1] - %tmp6490 = call i32 @gimplify_expr( %struct.tree_node** null, %struct.tree_node** %pre_p_addr.0, %struct.tree_node** %iftmp.381.0, i8 (%struct.tree_node*) zext * %gimple_test_f, i32 %fallback ) ; <i32> [#uses=0] - %tmp6551 = call i32 @gimplify_expr( %struct.tree_node** null, %struct.tree_node** %pre_p_addr.0, %struct.tree_node** %post_p_addr.0, i8 (%struct.tree_node*) zext * @is_gimple_val, i32 1 ) ; <i32> [#uses=0] + %tmp6490 = call i32 @gimplify_expr( %struct.tree_node** null, %struct.tree_node** %pre_p_addr.0, %struct.tree_node** %iftmp.381.0, i8 (%struct.tree_node*) zeroext * %gimple_test_f, i32 %fallback ) ; <i32> [#uses=0] + %tmp6551 = call i32 @gimplify_expr( %struct.tree_node** null, %struct.tree_node** %pre_p_addr.0, %struct.tree_node** %post_p_addr.0, i8 (%struct.tree_node*) zeroext * @is_gimple_val, i32 1 ) ; <i32> [#uses=0] ret i32 0 bb7444: ; preds = %cond_next298 @@ -728,7 +728,7 @@ bb7478: ; preds = %bb277 ret i32 0 } -declare i8 @is_gimple_formal_tmp_rhs(%struct.tree_node*) zext +declare i8 @is_gimple_formal_tmp_rhs(%struct.tree_node*) zeroext declare void @gimplify_and_add(%struct.tree_node*, %struct.tree_node**) @@ -738,17 +738,17 @@ declare %struct.tree_node* @get_formal_tmp_var(%struct.tree_node*, %struct.tree_ declare fastcc void @gimplify_init_ctor_preeval(%struct.tree_node**, %struct.tree_node**, %struct.tree_node**, %struct.gimplify_init_ctor_preeval_data*) -declare i8 @type_contains_placeholder_p(%struct.tree_node*) zext +declare i8 @type_contains_placeholder_p(%struct.tree_node*) zeroext -declare i8 @is_gimple_mem_rhs(%struct.tree_node*) zext +declare i8 @is_gimple_mem_rhs(%struct.tree_node*) zeroext -declare fastcc i32 @gimplify_modify_expr_rhs(%struct.tree_node**, %struct.tree_node**, %struct.tree_node**, %struct.tree_node**, %struct.tree_node**, i8 zext ) +declare fastcc i32 @gimplify_modify_expr_rhs(%struct.tree_node**, %struct.tree_node**, %struct.tree_node**, %struct.tree_node**, %struct.tree_node**, i8 zeroext ) declare %struct.tree_node* @fold_indirect_ref(%struct.tree_node*) -declare fastcc i32 @gimplify_compound_expr(%struct.tree_node**, %struct.tree_node**, i8 zext ) +declare fastcc i32 @gimplify_compound_expr(%struct.tree_node**, %struct.tree_node**, i8 zeroext ) -declare i8 @is_gimple_lvalue(%struct.tree_node*) zext +declare i8 @is_gimple_lvalue(%struct.tree_node*) zeroext declare void @categorize_ctor_elements(%struct.tree_node*, i64*, i64*, i64*, i8*) @@ -764,21 +764,21 @@ declare void @gimplify_stmt(%struct.tree_node**) declare %struct.tree_node* @get_base_address(%struct.tree_node*) -declare fastcc void @gimplify_init_ctor_eval(%struct.tree_node*, %struct.tree_node*, %struct.tree_node**, i8 zext ) +declare fastcc void @gimplify_init_ctor_eval(%struct.tree_node*, %struct.tree_node*, %struct.tree_node**, i8 zeroext ) declare %struct.tree_node* @build_complex(%struct.tree_node*, %struct.tree_node*, %struct.tree_node*) -declare i8 (%struct.tree_node*) zext * @rhs_predicate_for(%struct.tree_node*) +declare i8 (%struct.tree_node*) zeroext * @rhs_predicate_for(%struct.tree_node*) declare %struct.tree_node* @build_vector(%struct.tree_node*, %struct.tree_node*) -declare i8 @is_gimple_val(%struct.tree_node*) zext +declare i8 @is_gimple_val(%struct.tree_node*) zeroext -declare i8 @is_gimple_reg_type(%struct.tree_node*) zext +declare i8 @is_gimple_reg_type(%struct.tree_node*) zeroext declare fastcc i32 @gimplify_cond_expr(%struct.tree_node**, %struct.tree_node**, %struct.tree_node**, %struct.tree_node*, i32) -declare fastcc i32 @gimplify_modify_expr(%struct.tree_node**, %struct.tree_node**, %struct.tree_node**, i8 zext ) +declare fastcc i32 @gimplify_modify_expr(%struct.tree_node**, %struct.tree_node**, %struct.tree_node**, i8 zeroext ) declare %struct.tree_node* @tree_cons_stat(%struct.tree_node*, %struct.tree_node*, %struct.tree_node*) @@ -786,31 +786,31 @@ declare %struct.tree_node* @build_fold_addr_expr(%struct.tree_node*) declare %struct.tree_node* @build_function_call_expr(%struct.tree_node*, %struct.tree_node*) -declare i8 @is_gimple_addressable(%struct.tree_node*) zext +declare i8 @is_gimple_addressable(%struct.tree_node*) zeroext -declare i8 @is_gimple_reg(%struct.tree_node*) zext +declare i8 @is_gimple_reg(%struct.tree_node*) zeroext declare %struct.tree_node* @make_ssa_name(%struct.tree_node*, %struct.tree_node*) -declare i8 @tree_ssa_useless_type_conversion(%struct.tree_node*) zext +declare i8 @tree_ssa_useless_type_conversion(%struct.tree_node*) zeroext -declare fastcc i32 @gimplify_self_mod_expr(%struct.tree_node**, %struct.tree_node**, %struct.tree_node**, i8 zext ) +declare fastcc i32 @gimplify_self_mod_expr(%struct.tree_node**, %struct.tree_node**, %struct.tree_node**, i8 zeroext ) declare fastcc i32 @gimplify_compound_lval(%struct.tree_node**, %struct.tree_node**, %struct.tree_node**, i32) declare %struct.tree_node* @get_callee_fndecl(%struct.tree_node*) -declare %struct.tree_node* @fold_builtin(%struct.tree_node*, i8 zext ) +declare %struct.tree_node* @fold_builtin(%struct.tree_node*, i8 zeroext ) declare void @error(i8*, ...) declare %struct.tree_node* @build_empty_stmt() -declare i8 @fold_builtin_next_arg(%struct.tree_node*) zext +declare i8 @fold_builtin_next_arg(%struct.tree_node*) zeroext declare fastcc i32 @gimplify_arg(%struct.tree_node**, %struct.tree_node**) -declare i8 @is_gimple_call_addr(%struct.tree_node*) zext +declare i8 @is_gimple_call_addr(%struct.tree_node*) zeroext declare i32 @call_expr_flags(%struct.tree_node*) @@ -862,7 +862,7 @@ declare void @tsi_delink(%struct.tree_stmt_iterator*) declare void @tsi_link_before(%struct.tree_stmt_iterator*, %struct.tree_node*, i32) -declare i8 @is_gimple_stmt(%struct.tree_node*) zext +declare i8 @is_gimple_stmt(%struct.tree_node*) zeroext declare void @print_generic_expr(%struct.FILE*, %struct.tree_node*, i32) @@ -870,13 +870,13 @@ declare void @debug_tree(%struct.tree_node*) declare void @internal_error(i8*, ...) -declare %struct.tree_node* @force_gimple_operand(%struct.tree_node*, %struct.tree_node**, i8 zext , %struct.tree_node*) +declare %struct.tree_node* @force_gimple_operand(%struct.tree_node*, %struct.tree_node**, i8 zeroext , %struct.tree_node*) -declare i8 @is_gimple_reg_rhs(%struct.tree_node*) zext +declare i8 @is_gimple_reg_rhs(%struct.tree_node*) zeroext declare void @add_referenced_tmp_var(%struct.tree_node*) -declare i8 @contains_placeholder_p(%struct.tree_node*) zext +declare i8 @contains_placeholder_p(%struct.tree_node*) zeroext declare %struct.varray_head_tag* @varray_init(i32, i32, i8*) @@ -886,21 +886,21 @@ declare void @varray_check_failed(%struct.varray_head_tag*, i32, i8*, i32, i8*) declare %struct.tree_node* @array_ref_low_bound(%struct.tree_node*) -declare i8 @is_gimple_min_invariant(%struct.tree_node*) zext +declare i8 @is_gimple_min_invariant(%struct.tree_node*) zeroext -declare i8 @is_gimple_formal_tmp_reg(%struct.tree_node*) zext +declare i8 @is_gimple_formal_tmp_reg(%struct.tree_node*) zeroext declare %struct.tree_node* @array_ref_element_size(%struct.tree_node*) declare %struct.tree_node* @component_ref_field_offset(%struct.tree_node*) -declare i8 @is_gimple_min_lval(%struct.tree_node*) zext +declare i8 @is_gimple_min_lval(%struct.tree_node*) zeroext declare void @varray_underflow(%struct.varray_head_tag*, i8*, i32, i8*) declare i32 @list_length(%struct.tree_node*) -declare i8 @parse_output_constraint(i8**, i32, i32, i32, i8*, i8*, i8*) zext +declare i8 @parse_output_constraint(i8**, i32, i32, i32, i8*, i8*, i8*) zeroext declare i8* @xstrdup(i8*) @@ -912,11 +912,11 @@ declare %struct.tree_node* @build_tree_list_stat(%struct.tree_node*, %struct.tre declare %struct.tree_node* @chainon(%struct.tree_node*, %struct.tree_node*) -declare i8 @parse_input_constraint(i8**, i32, i32, i32, i32, i8**, i8*, i8*) zext +declare i8 @parse_input_constraint(i8**, i32, i32, i32, i32, i8**, i8*, i8*) zeroext -declare i8 @is_gimple_asm_val(%struct.tree_node*) zext +declare i8 @is_gimple_asm_val(%struct.tree_node*) zeroext -declare void @gimplify_body(%struct.tree_node**, %struct.tree_node*, i8 zext ) +declare void @gimplify_body(%struct.tree_node**, %struct.tree_node*, i8 zeroext ) declare void @timevar_push_1(i32) @@ -934,11 +934,11 @@ declare %struct.tree_node* @make_tree_vec_stat(i32) declare %struct.tree_node* @tsi_split_statement_list_after(%struct.tree_stmt_iterator*) -declare i8 @is_gimple_condexpr(%struct.tree_node*) zext +declare i8 @is_gimple_condexpr(%struct.tree_node*) zeroext declare %struct.tree_node* @invert_truthvalue(%struct.tree_node*) -declare i8 @initializer_zerop(%struct.tree_node*) zext +declare i8 @initializer_zerop(%struct.tree_node*) zeroext declare i32 @simple_cst_equal(%struct.tree_node*, %struct.tree_node*) diff --git a/test/CodeGen/ARM/2007-05-03-BadPostIndexedLd.ll b/test/CodeGen/ARM/2007-05-03-BadPostIndexedLd.ll index b850728ba3..f3f82bc484 100644 --- a/test/CodeGen/ARM/2007-05-03-BadPostIndexedLd.ll +++ b/test/CodeGen/ARM/2007-05-03-BadPostIndexedLd.ll @@ -2,7 +2,7 @@ %struct.Connection = type { i32, [10 x i8], i32 } %struct.IntChunk = type { %struct.cppobjtype, i32, i32*, i32 } - %struct.Point = type { i8*, %struct.cppobjtype, i16 (%struct.Point*) sext *, i16 (%struct.Point*) sext *, double (%struct.Point*)*, double (%struct.Point*)* } + %struct.Point = type { i8*, %struct.cppobjtype, i16 (%struct.Point*) signext *, i16 (%struct.Point*) signext *, double (%struct.Point*)*, double (%struct.Point*)* } %struct.RefPoint = type { %struct.Point*, %struct.cppobjtype } %struct.ShortArray = type { %struct.cppobjtype, i32, i16* } %struct.TestObj = type { i8*, %struct.cppobjtype, i8, [32 x i8], i8*, i8**, i16, i16, i32, i32, i32, i32, float, double, %struct.cppobjtype, i32, i16*, i16**, i8**, i32, %struct.XyPoint, [3 x %struct.Connection], %struct.Point*, %struct.XyPoint*, i32, i8*, i8*, i16*, %struct.ShortArray, %struct.IntChunk, %struct.cppobjtype, %struct.cppobjtype, %struct.RefPoint, i32, %struct.cppobjtype, %struct.cppobjtype } diff --git a/test/CodeGen/ARM/ifcvt8.ll b/test/CodeGen/ARM/ifcvt8.ll index c401e68260..811aa57fdb 100644 --- a/test/CodeGen/ARM/ifcvt8.ll +++ b/test/CodeGen/ARM/ifcvt8.ll @@ -8,7 +8,7 @@ declare void @abort() -define fastcc void @t(%struct.SString* %word, i8 sext %c) { +define fastcc void @t(%struct.SString* %word, i8 signext %c) { entry: %tmp1 = icmp eq %struct.SString* %word, null ; <i1> [#uses=1] br i1 %tmp1, label %cond_true, label %cond_false diff --git a/test/CodeGen/ARM/sxt_rot.ll b/test/CodeGen/ARM/sxt_rot.ll index bf62d08066..fde671f034 100644 --- a/test/CodeGen/ARM/sxt_rot.ll +++ b/test/CodeGen/ARM/sxt_rot.ll @@ -3,7 +3,7 @@ ; RUN: llvm-as < %s | llc -march=arm -mattr=+v6 | \ ; RUN: grep sxtab | wc -l | grep 1 -define i8 @test1(i32 %A) sext { +define i8 @test1(i32 %A) signext { %B = lshr i32 %A, 8 %C = shl i32 %A, 24 %D = or i32 %B, %C @@ -11,7 +11,7 @@ define i8 @test1(i32 %A) sext { ret i8 %E } -define i32 @test2(i32 %A, i32 %X) sext { +define i32 @test2(i32 %A, i32 %X) signext { %B = lshr i32 %A, 8 %C = shl i32 %A, 24 %D = or i32 %B, %C diff --git a/test/CodeGen/ARM/uxt_rot.ll b/test/CodeGen/ARM/uxt_rot.ll index d15c6503c7..66275eae0e 100644 --- a/test/CodeGen/ARM/uxt_rot.ll +++ b/test/CodeGen/ARM/uxt_rot.ll @@ -2,19 +2,19 @@ ; RUN: llvm-as < %s | llc -march=arm -mattr=+v6 | grep uxtab | wc -l | grep 1 ; RUN: llvm-as < %s | llc -march=arm -mattr=+v6 | grep uxth | wc -l | grep 1 -define i8 @test1(i32 %A.u) zext { +define i8 @test1(i32 %A.u) zeroext { %B.u = trunc i32 %A.u to i8 ret i8 %B.u } -define i32 @test2(i32 %A.u, i32 %B.u) zext { +define i32 @test2(i32 %A.u, i32 %B.u) zeroext { %C.u = trunc i32 %B.u to i8 %D.u = zext i8 %C.u to i32 %E.u = add i32 %A.u, %D.u ret i32 %E.u } -define i32 @test3(i32 %A.u) zext { +define i32 @test3(i32 %A.u) zeroext { %B.u = lshr i32 %A.u, 8 %C.u = shl i32 %A.u, 24 %D.u = or i32 %B.u, %C.u diff --git a/test/CodeGen/Alpha/add.ll b/test/CodeGen/Alpha/add.ll index 16ce2b0ab8..add5e0c67a 100644 --- a/test/CodeGen/Alpha/add.ll +++ b/test/CodeGen/Alpha/add.ll @@ -18,19 +18,19 @@ ; RUN: grep {s8subq} %t.s | wc -l | grep 2 -define i32 @al(i32 sext %x.s, i32 sext %y.s) sext { +define i32 @al(i32 signext %x.s, i32 signext %y.s) signext { entry: %tmp.3.s = add i32 %y.s, %x.s ; <i32> [#uses=1] ret i32 %tmp.3.s } -define i32 @ali(i32 sext %x.s) sext { +define i32 @ali(i32 signext %x.s) signext { entry: %tmp.3.s = add i32 100, %x.s ; <i32> [#uses=1] ret i32 %tmp.3.s } -define i64 @aq(i64 sext %x.s, i64 sext %y.s) sext { +define i64 @aq(i64 signext %x.s, i64 signext %y.s) signext { entry: %tmp.3.s = add i64 %y.s, %x.s ; <i64> [#uses=1] ret i64 %tmp.3.s @@ -42,13 +42,13 @@ entry: ret i64 %tmp.3.s } -define i32 @sl(i32 sext %x.s, i32 sext %y.s) sext { +define i32 @sl(i32 signext %x.s, i32 signext %y.s) signext { entry: %tmp.3.s = sub i32 %y.s, %x.s ; <i32> [#uses=1] |