mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 20:29:53 +00:00
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:
parent
087b72d1bc
commit
9445e9aaa0
@ -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
|
||||
|
@ -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; }
|
||||
|
@ -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; }
|
||||
|
@ -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)
|
||||
|
9
test/Assembler/2007-07-19-ParamAttrAmbiguity.ll
Normal file
9
test/Assembler/2007-07-19-ParamAttrAmbiguity.ll
Normal 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)
|
@ -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{
|
||||
|
@ -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*, ...)
|
||||
|
||||
|
@ -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*)
|
||||
|
||||
|
@ -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 }
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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 )
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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*, ...)
|
||||
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user