For PR1553:

Change the keywords for the zext and sext parameter attributes to be 
zeroext and signext so they don't conflict with the keywords for the
instructions of the same name. This gets around the ambiguity.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40069 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2007-07-19 23:13:04 +00:00
parent 087b72d1bc
commit 9445e9aaa0
29 changed files with 137 additions and 125 deletions

View File

@ -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&nbsp;(i16&nbsp;sext,&nbsp;i32&nbsp;*)&nbsp;*
<td class="left"><tt>float&nbsp;(i16&nbsp;signext,&nbsp;i32&nbsp;*)&nbsp;*
</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

View File

@ -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; }

View File

@ -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; }

View File

@ -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)

View File

@ -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)

View File

@ -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{

View File

@ -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*, ...)

View File

@ -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*)

View File

@ -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 }

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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]
ret i32 %tmp.3.s
}
define i32 @sli(i32 sext %x.s) sext {
define i32 @sli(i32 signext %x.s) signext {
entry:
%tmp.3.s = sub i32 %x.s, 100 ; <i32> [#uses=1]
ret i32 %tmp.3.s
@ -66,14 +66,14 @@ entry:
ret i64 %tmp.3.s
}
define i32 @a4l(i32 sext %x.s, i32 sext %y.s) sext {
define i32 @a4l(i32 signext %x.s, i32 signext %y.s) signext {
entry:
%tmp.1.s = shl i32 %y.s, 2 ; <i32> [#uses=1]
%tmp.3.s = add i32 %tmp.1.s, %x.s ; <i32> [#uses=1]
ret i32 %tmp.3.s
}
define i32 @a8l(i32 sext %x.s, i32 sext %y.s) sext {
define i32 @a8l(i32 signext %x.s, i32 signext %y.s) signext {
entry:
%tmp.1.s = shl i32 %y.s, 3 ; <i32> [#uses=1]
%tmp.3.s = add i32 %tmp.1.s, %x.s ; <i32> [#uses=1]
@ -94,14 +94,14 @@ entry:
ret i64 %tmp.3.s
}
define i32 @a4li(i32 sext %y.s) sext {
define i32 @a4li(i32 signext %y.s) signext {
entry:
%tmp.1.s = shl i32 %y.s, 2 ; <i32> [#uses=1]
%tmp.3.s = add i32 100, %tmp.1.s ; <i32> [#uses=1]
ret i32 %tmp.3.s
}
define i32 @a8li(i32 sext %y.s) sext {
define i32 @a8li(i32 signext %y.s) signext {
entry:
%tmp.1.s = shl i32 %y.s, 3 ; <i32> [#uses=1]
%tmp.3.s = add i32 100, %tmp.1.s ; <i32> [#uses=1]
@ -122,14 +122,14 @@ entry:
ret i64 %tmp.3.s
}
define i32 @s4l(i32 sext %x.s, i32 sext %y.s) sext {
define i32 @s4l(i32 signext %x.s, i32 signext %y.s) signext {
entry:
%tmp.1.s = shl i32 %y.s, 2 ; <i32> [#uses=1]
%tmp.3.s = sub i32 %tmp.1.s, %x.s ; <i32> [#uses=1]
ret i32 %tmp.3.s
}
define i32 @s8l(i32 sext %x.s, i32 sext %y.s) sext {
define i32 @s8l(i32 signext %x.s, i32 signext %y.s) signext {
entry:
%tmp.1.s = shl i32 %y.s, 3 ; <i32> [#uses=1]
%tmp.3.s = sub i32 %tmp.1.s, %x.s ; <i32> [#uses=1]
@ -150,14 +150,14 @@ entry:
ret i64 %tmp.3.s
}
define i32 @s4li(i32 sext %y.s) sext {
define i32 @s4li(i32 signext %y.s) signext {
entry:
%tmp.1.s = shl i32 %y.s, 2 ; <i32> [#uses=1]
%tmp.3.s = sub i32 %tmp.1.s, 100 ; <i32> [#uses=1]
ret i32 %tmp.3.s
}
define i32 @s8li(i32 sext %y.s) sext {
define i32 @s8li(i32 signext %y.s) signext {
entry:
%tmp.1.s = shl i32 %y.s, 3 ; <i32> [#uses=1]
%tmp.3.s = sub i32 %tmp.1.s, 100 ; <i32> [#uses=1]

View File

@ -2,7 +2,7 @@
; RUN: llvm-as < %s | llc -march=alpha | grep -i {subl \$16,1,\$0}
define i32 @foo(i32 sext %x) sext {
define i32 @foo(i32 signext %x) signext {
entry:
%tmp.1 = add i32 %x, -1 ; <int> [#uses=1]
ret i32 %tmp.1

View File

@ -2,7 +2,7 @@
; RUN: llvm-as < %s | llc -march=alpha | grep zapnot
define i16 @foo(i64 %y) zext {
define i16 @foo(i64 %y) zeroext {
entry:
%tmp.1 = trunc i64 %y to i16 ; <ushort> [#uses=1]
ret i16 %tmp.1

View File

@ -4,7 +4,7 @@ target triple = "powerpc-apple-darwin8.8.0"
; RUN: llvm-as < %s | llc -march=ppc32 | grep {rlwinm r3, r3, 23, 30, 30}
; PR1473
define i8 @foo(i16 zext %a) zext {
define i8 @foo(i16 zeroext %a) zeroext {
%tmp2 = lshr i16 %a, 10 ; <i16> [#uses=1]
%tmp23 = trunc i16 %tmp2 to i8 ; <i8> [#uses=1]
%tmp4 = shl i8 %tmp23, 1 ; <i8> [#uses=1]

View File

@ -9,7 +9,7 @@ define void @test(i8* %P) {
ret void
}
define i16 @test2(i16 zext %crc) zext {
define i16 @test2(i16 zeroext %crc) zeroext {
; No and's should be needed for the i16s here.
%tmp.1 = lshr i16 %crc, 1
%tmp.7 = xor i16 %tmp.1, 40961

View File

@ -9,7 +9,7 @@ define i32 @test1(i32 %mode.0.i.0) {
ret i32 %tmp.81
}
define i16 @test2(i16 sext %X, i16 sext %x) sext {
define i16 @test2(i16 signext %X, i16 signext %x) signext {
%tmp = sext i16 %X to i32
%tmp1 = sext i16 %x to i32
%tmp2 = add i32 %tmp, %tmp1
@ -20,7 +20,7 @@ define i16 @test2(i16 sext %X, i16 sext %x) sext {
ret i16 %retval
}
define i16 @test3(i32 zext %X) sext {
define i16 @test3(i32 zeroext %X) signext {
%tmp1 = lshr i32 %X, 16
%tmp2 = trunc i32 %tmp1 to i16
ret i16 %tmp2

View File

@ -1,25 +1,25 @@
; RUN: llvm-as < %s | llc -march=ppc32 | not grep {extsh\\|rlwinm}
declare i16 @foo() sext
declare i16 @foo() signext
define i32 @test1(i16 sext %X) {
define i32 @test1(i16 signext %X) {
%Y = sext i16 %X to i32 ;; dead
ret i32 %Y
}
define i32 @test2(i16 zext %X) {
define i32 @test2(i16 zeroext %X) {
%Y = sext i16 %X to i32
%Z = and i32 %Y, 65535 ;; dead
ret i32 %Z
}
define void @test3() {
%tmp.0 = call i16 @foo() sext ;; no extsh!
%tmp.0 = call i16 @foo() signext ;; no extsh!
%tmp.1 = icmp slt i16 %tmp.0, 1234
br i1 %tmp.1, label %then, label %UnifiedReturnBlock
then:
call i32 @test1(i16 0 sext)
call i32 @test1(i16 0 signext)
ret void
UnifiedReturnBlock:
ret void
@ -46,7 +46,7 @@ define i32 @test6(i32* %P) {
ret i32 %tmp.2
}
define i16 @test7(float %a) zext {
define i16 @test7(float %a) zeroext {
%tmp.1 = fptoui float %a to i16
ret i16 %tmp.1
}

View File

@ -3,7 +3,7 @@
%struct.XDesc = type <{ i32, %struct.OpaqueXDataStorageType** }>
%struct.OpaqueXDataStorageType = type opaque
declare i16 @GetParamDesc(%struct.XDesc*, i32, i32, %struct.XDesc*) sext
declare i16 @GetParamDesc(%struct.XDesc*, i32, i32, %struct.XDesc*) signext
declare void @r_raise(i64, i8*, ...)
@ -18,7 +18,7 @@ cond_true109: ; preds = %entry
br i1 false, label %cond_next164, label %cond_true239
cond_next164: ; preds = %cond_true109
%tmp176 = call i16 @GetParamDesc( %struct.XDesc* null, i32 1701999219, i32 1413830740, %struct.XDesc* null ) sext ; <i16> [#uses=0]
%tmp176 = call i16 @GetParamDesc( %struct.XDesc* null, i32 1701999219, i32 1413830740, %struct.XDesc* null ) signext ; <i16> [#uses=0]
call void (i64, i8*, ...)* @r_raise( i64 0, i8* null )
unreachable

View File

@ -431,9 +431,9 @@ declare i32 @report__ident_int(i32 %x)
declare i8 @report__equal(i32 %x, i32 %y)
declare i8 @report__ident_char(i8 zext %x)
declare i8 @report__ident_char(i8 zeroext %x)
declare i16 @report__ident_wide_char(i16 zext %x)
declare i16 @report__ident_wide_char(i16 zeroext %x)
declare i8 @report__ident_bool(i8 %x)
@ -451,4 +451,4 @@ declare void @report__legal_file_name(%struct.string___XUP* sret %agg.result, i
declare void @__gnat_rcheck_06(i8*, i32)
declare void @system__string_ops__str_concat_cs(%struct.string___XUP* sret , i8 zext , i64)
declare void @system__string_ops__str_concat_cs(%struct.string___XUP* sret , i8 zeroext , i64)

View File

@ -4,7 +4,7 @@
; RUN: llvm-as < %s | llc -march=x86 | grep {\\(and\\)\\|\\(test.*\\\$1\\)} | \
; RUN: wc -l | grep 6
define i1 @test1(i32 %X) zext {
define i1 @test1(i32 %X) zeroext {
%Y = trunc i32 %X to i1
ret i1 %Y
}

View File

@ -7,7 +7,7 @@ target datalayout = "e-p:64:64"
target triple = "x86_64-apple-darwin8"
define i32 @test(i16 sext %X) {
define i32 @test(i16 signext %X) {
entry:
%tmp12 = sext i16 %X to i32 ; <i32> [#uses=1]
ret i32 %tmp12

View File

@ -4,9 +4,9 @@ target datalayout = "e-p:64:64"
target triple = "x86_64-apple-darwin8"
define void @bar(i16 zext %A) {
tail call void @foo( i16 %A sext )
define void @bar(i16 zeroext %A) {
tail call void @foo( i16 %A signext )
ret void
}
declare void @foo(i16 sext )
declare void @foo(i16 signext )

View File

@ -2,21 +2,21 @@
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
; RUN: diff %t1.ll %t2.ll
%ZFunTy = type i32(i8 zext)
%SFunTy = type i32(i8 sext)
%ZFunTy = type i32(i8 zeroext)
%SFunTy = type i32(i8 signext)
declare i16 @"test"(i16 sext %arg) sext
declare i8 @"test2" (i16 zext %a2) zext
declare i16 @"test"(i16 signext %arg) signext
declare i8 @"test2" (i16 zeroext %a2) zeroext
declare i32 @"test3"(i32* noalias %p)
declare void @exit(i32) noreturn nounwind
define i32 @main(i32 %argc, i8 **%argv) nounwind inreg {
define i32 @main(i32 inreg %argc, i8 ** inreg %argv) nounwind {
%val = trunc i32 %argc to i16
%res1 = call i16 (i16 sext) sext *@test(i16 %val)
%res1 = call i16 (i16 signext) signext *@test(i16 %val)
%two = add i16 %res1, %res1
%res2 = call i8 @test2(i16 %two zext) zext
%res2 = call i8 @test2(i16 %two zeroext) zeroext
%retVal = sext i16 %two to i32
ret i32 %retVal
}

View File

@ -2,18 +2,18 @@
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
; RUN: diff %t1.ll %t2.ll
%ZFunTy = type i33(i8 zext)
%SFunTy = type i33(i8 sext)
%ZFunTy = type i33(i8 zeroext)
%SFunTy = type i33(i8 signext)
declare i16 @"test"(i16 sext %arg) sext
declare i8 @"test2" (i16 zext %a2) zext
declare i16 @"test"(i16 signext %arg) signext
declare i8 @"test2" (i16 zeroext %a2) zeroext
define i33 @main(i33 %argc, i8 **%argv) {
%val = trunc i33 %argc to i16
%res = call i16 (i16 sext) sext *@test(i16 %val)
%res = call i16 (i16 signext) signext *@test(i16 %val)
%two = add i16 %res, %res
%res2 = call i8 @test2(i16 %two zext) zext
%res2 = call i8 @test2(i16 %two zeroext) zeroext
%retVal = sext i16 %two to i33
ret i33 %retVal
}

View File

@ -11,7 +11,7 @@ cond_true: ; preds = %entry
ret i32 0
cond_next: ; preds = %entry
%tmp10 = invoke i16 @_ZN12token_stream4openEPKc( i8* null, i8* null ) sext
%tmp10 = invoke i16 @_ZN12token_stream4openEPKc( i8* null, i8* null ) signext
to label %invcont unwind label %cleanup690 ; <i16> [#uses=0]
invcont: ; preds = %cond_next
@ -63,7 +63,7 @@ cleanup690: ; preds = %cond_next
ret i32 0
}
declare i16 @_ZN12token_stream4openEPKc(i8*, i8*) sext
declare i16 @_ZN12token_stream4openEPKc(i8*, i8*) signext
declare i32 @printf(i8*, ...)

View File

@ -6,7 +6,7 @@ target triple = "thumb-apple-darwin8"
@"L_OBJC_IMAGE_INFO" = internal global [2 x i32] zeroinitializer ; <[2 x i32]*> [#uses=1]
@llvm.used = appending global [1 x i8*] [ i8* bitcast ([2 x i32]* @"L_OBJC_IMAGE_INFO" to i8*) ] ; <[1 x i8*]*> [#uses=0]
define i16 @__NSCharToUnicharCFWrapper(i8 zext %ch) zext {
define i16 @__NSCharToUnicharCFWrapper(i8 zeroext %ch) zeroext {
entry:
%iftmp.0.0.in.in = select i1 false, i16* @replacementUnichar, i16* null ; <i16*> [#uses=1]
%iftmp.0.0.in = load i16* %iftmp.0.0.in.in ; <i16> [#uses=1]

View File

@ -4,7 +4,7 @@
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
target triple = "i686-pc-linux-gnu"
define i32 @testcase(i5 zext %k) {
define i32 @testcase(i5 zeroext %k) {
entry:
br label %bb2