diff --git a/src/compiler/compiler_internal.h b/src/compiler/compiler_internal.h index b70c4f9b2..f0860426b 100644 --- a/src/compiler/compiler_internal.h +++ b/src/compiler/compiler_internal.h @@ -2174,7 +2174,7 @@ INLINE bool expr_is_const_member(Expr *expr); INLINE void expr_rewrite_const_null(Expr *expr, Type *type); INLINE void expr_rewrite_const_bool(Expr *expr, Type *type, bool b); -INLINE void expr_rewrite_const_float(Expr *expr, Type *type, Real d); +INLINE void expr_rewrite_const_float(Expr *expr, Type *type, Real d, bool is_narrowable); INLINE void expr_rewrite_const_int(Expr *expr, Type *type, uint64_t v, bool narrowable); INLINE void expr_rewrite_const_typeid(Expr *expr, Type *type); INLINE void expr_rewrite_const_initializer(Expr *expr, Type *type, ConstInitializer *initializer); @@ -2829,7 +2829,14 @@ INLINE bool type_ok(Type *type) { return !type || type->type_kind != TYPE_POISON INLINE bool type_info_ok(TypeInfo *type_info) { return !type_info || type_info->kind != TYPE_INFO_POISON; } bool type_is_scalar(Type *type); -INLINE bool type_is_signed(Type *type) { return type->type_kind >= TYPE_I8 && type->type_kind < TYPE_U8; } +INLINE bool type_is_signed(Type *type) +{ + TypeKind kind = type->type_kind; + if (kind >= TYPE_I8 && kind < TYPE_U8) return true; + if (kind != TYPE_VECTOR) return false; + kind = type->array.base->type_kind; + return kind >= TYPE_I8 && kind < TYPE_U8; +} INLINE bool type_is_func_ptr(Type *fn_type) { @@ -3165,24 +3172,30 @@ INLINE void expr_rewrite_const_int(Expr *expr, Type *type, uint64_t v, bool narr expr->const_expr.narrowable = narrowable; } -INLINE void expr_rewrite_const_float(Expr *expr, Type *type, Real d) +INLINE void expr_rewrite_const_float(Expr *expr, Type *type, Real d, bool is_narrowable) { expr->expr_kind = EXPR_CONST; expr->type = type; TypeKind kind = type_flatten(type)->type_kind; + Real real; switch (kind) { case TYPE_F32: - expr->const_expr.fxx = (Float){ (float)d, TYPE_F32 }; + real = (float)d; break; case TYPE_F64: - expr->const_expr.fxx = (Float){ (double)d, TYPE_F64 }; + real = (double)d; break; default: - expr->const_expr.fxx = (Float){ d, kind }; + REMINDER("Handling of float type may not be accurate"); + real = d; break; } - expr->const_expr.const_kind = CONST_FLOAT; + expr->const_expr = (ExprConst) { + .fxx = (Float){ real, kind }, + .const_kind = CONST_FLOAT, + .narrowable = is_narrowable, + }; expr->resolve_status = RESOLVE_DONE; } diff --git a/src/compiler/enums.h b/src/compiler/enums.h index 0525c8385..1835fee07 100644 --- a/src/compiler/enums.h +++ b/src/compiler/enums.h @@ -88,7 +88,6 @@ typedef enum CAST_BOOLVECINT, CAST_BSARRY, CAST_BSINT, - CAST_ENUMLOW, CAST_ERBOOL, CAST_EREU, CAST_ERINT, @@ -100,8 +99,10 @@ typedef enum CAST_FPFP, CAST_FPSI, CAST_FPUI, + CAST_INTINT, CAST_INTBOOL, CAST_INTENUM, + CAST_INTFP, CAST_NUMVEC, CAST_PTRANY, CAST_PTRBOOL, @@ -110,14 +111,8 @@ typedef enum CAST_SABOOL, CAST_SAPTR, CAST_SASA, - CAST_SIFP, - CAST_SISI, - CAST_SIUI, CAST_STRPTR, CAST_STST, - CAST_UIFP, - CAST_UISI, - CAST_UIUI, CAST_VECARR, CAST_VOID, CAST_INTERR, diff --git a/src/compiler/expr.c b/src/compiler/expr.c index 79b0edee4..5098998d4 100644 --- a/src/compiler/expr.c +++ b/src/compiler/expr.c @@ -362,18 +362,14 @@ static inline bool expr_cast_is_constant_eval(Expr *expr, ConstantEvalKind eval_ case CAST_FPFP: case CAST_FPSI: case CAST_FPUI: - case CAST_SISI: - case CAST_SIUI: - case CAST_SIFP: - case CAST_UISI: - case CAST_UIUI: - case CAST_UIFP: + case CAST_INTFP: case CAST_SABOOL: case CAST_STST: case CAST_VECARR: case CAST_ARRVEC: case CAST_BOOLVECINT: case CAST_NUMVEC: + case CAST_INTINT: if (eval_kind != CONSTANT_EVAL_NO_SIDE_EFFECTS) return false; return exprid_is_constant_eval(expr->cast_expr.expr, eval_kind); case CAST_INTPTR: @@ -381,7 +377,6 @@ static inline bool expr_cast_is_constant_eval(Expr *expr, ConstantEvalKind eval_ case CAST_APTSA: case CAST_SAPTR: case CAST_SASA: - case CAST_ENUMLOW: case CAST_VOID: return exprid_is_constant_eval(expr->cast_expr.expr, eval_kind); case CAST_PTRANY: @@ -564,7 +559,7 @@ void expr_rewrite_to_const_zero(Expr *expr, Type *type) expr_rewrite_const_int(expr, type, 0, true); return; case ALL_FLOATS: - expr_rewrite_const_float(expr, type, 0); + expr_rewrite_const_float(expr, type, 0, true); break; case TYPE_BOOL: expr_rewrite_const_bool(expr, type, false); diff --git a/src/compiler/llvm_codegen_expr.c b/src/compiler/llvm_codegen_expr.c index 30c3375c5..f577455c7 100644 --- a/src/compiler/llvm_codegen_expr.c +++ b/src/compiler/llvm_codegen_expr.c @@ -1356,42 +1356,21 @@ void llvm_emit_cast(GenContext *c, CastKind cast_kind, Expr *expr, BEValue *valu llvm_value_rvalue(c, value); value->value = LLVMBuildFPToUI(c->builder, value->value, llvm_get_type(c, to_type), "fpui"); break; - case CAST_SISI: - llvm_value_rvalue(c, value); - value->value = type_convert_will_trunc(to_type, from_type) - ? LLVMBuildTrunc(c->builder, value->value, llvm_get_type(c, to_type), "sisitrunc") - : LLVMBuildSExt(c->builder, value->value, llvm_get_type(c, to_type), "sisiext"); + case CAST_INTINT: + llvm_value_ext_trunc(c, value, to_type); break; - case CAST_SIUI: + case CAST_INTFP: llvm_value_rvalue(c, value); - value->value = type_convert_will_trunc(to_type, from_type) - ? LLVMBuildTrunc(c->builder, value->value, llvm_get_type(c, to_type), "siuitrunc") - : LLVMBuildSExt(c->builder, value->value, llvm_get_type(c, to_type), "siuiext"); - break; - case CAST_SIFP: - llvm_value_rvalue(c, value); - value->value = LLVMBuildSIToFP(c->builder, value->value, llvm_get_type(c, to_type), "sifp"); + if (type_is_signed(value->type)) + { + value->value = LLVMBuildSIToFP(c->builder, value->value, llvm_get_type(c, to_type), "sifp"); + break; + } + value->value = LLVMBuildUIToFP(c->builder, value->value, llvm_get_type(c, to_type), "uifp"); break; case CAST_INTPTR: llvm_value_rvalue(c, value); - value->value = LLVMBuildIntToPtr(c->builder, value->value, llvm_get_type(c, to_type), "xiptr"); - break; - case CAST_UISI: - llvm_value_rvalue(c, value); - value->value = type_convert_will_trunc(to_type, from_type) - ? LLVMBuildTrunc(c->builder, value->value, llvm_get_type(c, to_type), "uisitrunc") - : LLVMBuildZExt(c->builder, value->value, llvm_get_type(c, to_type), "uisiext"); - break; - case CAST_UIUI: - llvm_value_rvalue(c, value); - value->value = llvm_zext_trunc(c, value->value, llvm_get_type(c, to_type)); - break; - case CAST_UIFP: - llvm_value_rvalue(c, value); - value->value = LLVMBuildUIToFP(c->builder, value->value, llvm_get_type(c, to_type), "uifp"); - break; - case CAST_ENUMLOW: - llvm_value_rvalue(c, value); + value->value = LLVMBuildIntToPtr(c->builder, value->value, llvm_get_type(c, to_type), "intptr"); break; case CAST_STST: llvm_value_addr(c, value); diff --git a/src/compiler/llvm_codegen_internal.h b/src/compiler/llvm_codegen_internal.h index b2981b877..ec9b40259 100644 --- a/src/compiler/llvm_codegen_internal.h +++ b/src/compiler/llvm_codegen_internal.h @@ -321,6 +321,8 @@ INLINE void llvm_set_alignment(LLVMValueRef alloca, AlignSize alignment); INLINE AlignSize llvm_type_or_alloca_align(LLVMValueRef dest, Type *type); INLINE LLVMValueRef llvm_zext_trunc(GenContext *c, LLVMValueRef data, LLVMTypeRef type); +INLINE LLVMValueRef llvm_sext_trunc(GenContext *c, LLVMValueRef data, LLVMTypeRef type); +INLINE void llvm_value_ext_trunc(GenContext *c, BEValue *value, Type *type); // -- Constants -- void llvm_emit_typeid(GenContext *c, BEValue *be_value, Type *type); diff --git a/src/compiler/llvm_codegen_internal_impl.h b/src/compiler/llvm_codegen_internal_impl.h index c4f4495f3..b812d691e 100644 --- a/src/compiler/llvm_codegen_internal_impl.h +++ b/src/compiler/llvm_codegen_internal_impl.h @@ -8,21 +8,77 @@ INLINE LLVMValueRef llvm_emit_insert_value(GenContext *c, LLVMValueRef agg, LLVM return LLVMBuildInsertValue(c->builder, agg, new_value, index, ""); } +INLINE bool llvm_is_int_or_vector_int(LLVMTypeRef type) +{ + if (LLVMGetTypeKind(type) == LLVMIntegerTypeKind) return true; + return LLVMGetTypeKind(type) == LLVMVectorTypeKind + && LLVMGetTypeKind(LLVMGetElementType(type)) == LLVMIntegerTypeKind; +} INLINE LLVMValueRef llvm_zext_trunc(GenContext *c, LLVMValueRef data, LLVMTypeRef type) { LLVMTypeRef current_type = LLVMTypeOf(data); if (current_type == type) return data; - assert(LLVMGetTypeKind(type) == LLVMIntegerTypeKind); - assert(LLVMGetTypeKind(current_type) == LLVMIntegerTypeKind); + assert(llvm_is_int_or_vector_int(type)); + assert(llvm_is_int_or_vector_int(current_type)); if (llvm_bitsize(c, current_type) < llvm_bitsize(c, type)) { return LLVMBuildZExt(c->builder, data, type, "zext"); } assert(llvm_bitsize(c, current_type) > llvm_bitsize(c, type)); - return LLVMBuildTrunc(c->builder, data, type, "ztrunc"); + return LLVMBuildTrunc(c->builder, data, type, "trunc"); } +INLINE LLVMValueRef llvm_sext_trunc(GenContext *c, LLVMValueRef data, LLVMTypeRef type) +{ + LLVMTypeRef current_type = LLVMTypeOf(data); + if (current_type == type) return data; + assert(llvm_is_int_or_vector_int(type)); + assert(llvm_is_int_or_vector_int(current_type)); + if (llvm_bitsize(c, current_type) < llvm_bitsize(c, type)) + { + return LLVMBuildSExt(c->builder, data, type, "sext"); + } + assert(llvm_bitsize(c, current_type) > llvm_bitsize(c, type)); + return LLVMBuildTrunc(c->builder, data, type, "trunc"); +} + +INLINE bool type_is_intlike(Type *type) +{ + type = type_flatten(type); + if (type_is_integer_or_bool_kind(type)) return true; + if (type->type_kind != TYPE_VECTOR) return false; + type = type->array.base; + return type_is_integer_or_bool_kind(type); +} + +INLINE void llvm_value_ext_trunc(GenContext *c, BEValue *value, Type *type) +{ + type = type_flatten(type); + Type *from_type = value->type; + ByteSize size = type_size(from_type); + ByteSize to_size = type_size(type); + + assert(type_is_intlike(type) && type_is_intlike(from_type)); + if (size == to_size) return; + + llvm_value_rvalue(c, value); + LLVMTypeRef current_type = llvm_get_type(c, type); + if (size < to_size) + { + if (type_is_signed(from_type)) + { + value->value = LLVMBuildSExt(c->builder, value->value, current_type, "sext"); + value->type = type; + return; + } + value->value = LLVMBuildZExt(c->builder, value->value, current_type, "zext"); + value->type = type; + return; + } + value->value = LLVMBuildTrunc(c->builder, value->value, current_type, "trunc"); + value->type = type; +} INLINE LLVMValueRef llvm_store_decl(GenContext *c, Decl *decl, BEValue *value) { diff --git a/src/compiler/sema_casts.c b/src/compiler/sema_casts.c index 9545fb621..e53925e08 100644 --- a/src/compiler/sema_casts.c +++ b/src/compiler/sema_casts.c @@ -26,12 +26,17 @@ static bool bool_to_int(Expr *expr, Type *canonical, Type *type); static bool bool_to_float(Expr *expr, Type *canonical, Type *type); static bool integer_to_bool(Expr *expr, Type *type); static bool integer_to_enum(Expr *expr, Type *canonical, Type *type); +static bool integer_to_integer(Expr *expr, Type *canonical, Type *type); +static bool integer_to_pointer(Expr *expr, Type *type); +static bool integer_expand_to_vector_conversion(Expr *expr, Type *canonical, Type *type); static bool float_to_bool(Expr *expr, Type *type); static bool float_to_float(Expr* expr, Type *canonical, Type *type); static bool float_to_integer(Expr *expr, Type *canonical, Type *type); +static bool float_expand_to_vector_conversion(Expr *expr, Type *canonical, Type *type); +static void enum_to_int_lowering(Expr* expr); static bool voidfail_to_error(Expr *expr, Type *type); -static void const_int_to_fp_cast(Expr *expr, Type *canonical, Type *type); + INLINE bool insert_runtime_cast_unless_const(Expr *expr, CastKind kind, Type *type); /** @@ -184,32 +189,6 @@ static bool pointer_to_pointer(Expr* expr, Type *type) return true; } -/** - * Do a const int -> float cast. - */ -static void const_int_to_fp_cast(Expr *expr, Type *canonical, Type *type) -{ - Real f = int_to_real(expr->const_expr.ixx); - switch (canonical->type_kind) - { - case TYPE_F32: - expr->const_expr.fxx = (Float) { (float)f, TYPE_F32 }; - break; - case TYPE_F64: - expr->const_expr.fxx = (Float) { (double)f, TYPE_F64 }; - break; - default: - REMINDER("Int to fp cast may be too wide."); - expr->const_expr.fxx = (Float) { f, canonical->type_kind }; - break; - } - // It's not allowed to narrow after a cast. - expr->type = type; - expr->const_expr.const_kind = CONST_FLOAT; - expr->const_expr.narrowable = false; - expr->const_expr.is_hex = false; -} - /** * Bool into a signed or unsigned int using CAST_BOOLINT @@ -233,7 +212,7 @@ static bool bool_to_float(Expr *expr, Type *canonical, Type *type) if (insert_runtime_cast_unless_const(expr, CAST_BOOLFP, type)) return true; assert(expr->const_expr.const_kind == CONST_BOOL); - expr_rewrite_const_float(expr, type, expr->const_expr.b ? 1.0 : 0.0); + expr_rewrite_const_float(expr, type, expr->const_expr.b ? 1.0 : 0.0, false); return true; } @@ -288,7 +267,7 @@ static bool float_to_float(Expr* expr, Type *canonical, Type *type) if (insert_runtime_cast_unless_const(expr, CAST_FPFP, type)) return true; // Otherwise rewrite the const, which may cause rounding. - expr_rewrite_const_float(expr, type, expr->const_expr.fxx.f); + expr_rewrite_const_float(expr, type, expr->const_expr.fxx.f, false); return true; } @@ -301,6 +280,7 @@ static bool float_to_integer(Expr *expr, Type *canonical, Type *type) bool is_signed = type_is_signed(canonical); if (insert_runtime_cast_unless_const(expr, is_signed ? CAST_FPSI : CAST_FPUI, type)) return true; + // Run the int->real to and rewrite. assert(type_is_integer(canonical)); Real d = expr->const_expr.fxx.f; expr->const_expr.ixx = int_from_real(d, canonical->type_kind); @@ -314,6 +294,7 @@ static bool float_to_integer(Expr *expr, Type *canonical, Type *type) /** * Convert from integer to enum using CAST_INTENUM / or do a const conversion. + * This will ensure that the conversion is valid (i.e. in the range 0 .. enumcount - 1) */ static bool integer_to_enum(Expr *expr, Type *canonical, Type *type) { @@ -325,20 +306,24 @@ static bool integer_to_enum(Expr *expr, Type *canonical, Type *type) // Check that the type is within limits. unsigned max_enums = vec_size(enum_decl->enums.values); Int to_convert = expr->const_expr.ixx; + + // Negative numbers are always wrong. if (int_is_neg(to_convert)) { SEMA_ERROR(expr, "A negative number cannot be converted to an enum."); return false; } - // We don't support more than 4 billion enum values :D + // Check the max, we don't support more than 4 billion, + // so we can safely use TYPE_U32. Int max = { .i.low = max_enums, .type = TYPE_U32 }; if (int_comp(to_convert, max, BINARYOP_GE)) { SEMA_ERROR(expr, "This value exceeds the number of enums in %s.", canonical->decl->name); return false; } - // Fold the const into the actual value. + + // Fold the const into the actual enum. Decl *decl = enum_decl->enums.values[to_convert.i.low]; expr->const_expr = (ExprConst) { .enum_err_val = decl, @@ -348,18 +333,24 @@ static bool integer_to_enum(Expr *expr, Type *canonical, Type *type) return true; } - -static bool int_conversion(Expr *expr, CastKind kind, Type *canonical, Type *type) +/** + * Convert between integers: CAST_INTINT + */ +static bool integer_to_integer(Expr *expr, Type *canonical, Type *type) { // Fold pointer casts if narrowing + // So (int)(uptr)&x => (int)&x in the backend. if (expr->expr_kind == EXPR_CAST && expr->cast_expr.kind == CAST_PTRINT && type_size(type) <= type_size(expr->type)) { expr->type = type; return true; } - if (insert_runtime_cast_unless_const(expr, kind, type)) return true; + // Insert runtime casts on non-const. + if (insert_runtime_cast_unless_const(expr, CAST_INTINT, type)) return true; + + // Hand this off to the int conversion. expr->const_expr.ixx = int_conv(expr->const_expr.ixx, canonical->type_kind); expr->const_expr.const_kind = CONST_INTEGER; expr->type = type; @@ -368,7 +359,10 @@ static bool int_conversion(Expr *expr, CastKind kind, Type *canonical, Type *typ return true; } -static bool int_vector_conversion(Expr *expr, Type *canonical, Type *type) +/** + * Convert 1 => { 1, 1, 1, 1 } using CAST_NUMVEC + */ +static bool integer_expand_to_vector_conversion(Expr *expr, Type *canonical, Type *type) { // Fold pointer casts if narrowing Type *base = type_get_indexed_type(type); @@ -376,7 +370,10 @@ static bool int_vector_conversion(Expr *expr, Type *canonical, Type *type) return insert_cast(expr, CAST_NUMVEC, type); } -static bool float_vector_conversion(Expr *expr, Type *canonical, Type *type) +/** + * Convert 1.0 => { 1, 1, 1, 1 } using CAST_NUMVEC + */ +static bool float_expand_to_vector_conversion(Expr *expr, Type *canonical, Type *type) { // Fold pointer casts if narrowing Type *base = type_get_indexed_type(type); @@ -386,111 +383,71 @@ static bool float_vector_conversion(Expr *expr, Type *canonical, Type *type) /** - * Cast a signed or unsigned integer -> floating point + * Cast a signed or unsigned integer -> floating point, using CAST_INTFP + * for runtime, otherwise do const transformation. */ -static bool int_to_float(Expr *expr, CastKind kind, Type *canonical, Type *type) +static bool integer_to_float(Expr *expr, Type *canonical, Type *type) { - if (insert_runtime_cast_unless_const(expr, kind, type)) return true; - const_int_to_fp_cast(expr, canonical, type); + if (insert_runtime_cast_unless_const(expr, CAST_INTFP, type)) return true; + + Real f = int_to_real(expr->const_expr.ixx); + expr_rewrite_const_float(expr, type, f, false); return true; } /** - * Convert a compile time into to a boolean. + * Cast any int to a pointer, will use CAST_INTPTR after a conversion to uptr for runtime. + * Compile time it will check that the value fits the pointer size. */ -static bool int_literal_to_bool(Expr *expr, Type *type) -{ - assert(expr->expr_kind == EXPR_CONST); - expr_rewrite_const_bool(expr, type, !int_is_zero(expr->const_expr.ixx)); - return true; -} - - -/** - * Cast any int to a pointer -> pointer. - */ -static bool int_to_pointer(Expr *expr, Type *type) +static bool integer_to_pointer(Expr *expr, Type *type) { assert(type_bit_size(type_uptr) <= 64 && "For > 64 bit pointers, this code needs updating."); + + // Handle const: if (expr->expr_kind == EXPR_CONST) { + // For if the type doesn't fit, insert an error. if (!int_fits(expr->const_expr.ixx, type_uptr->canonical->type_kind)) { SEMA_ERROR(expr, "'0x%s' does not fit in a pointer.", int_to_str(expr->const_expr.ixx, 16)); return false; } - expr->const_expr.ptr = expr->const_expr.ixx.i.low; + // Otherwise just update. expr->type = type; + expr->const_expr.ptr = expr->const_expr.ixx.i.low; expr->const_expr.const_kind = CONST_POINTER; return true; } + // Insert widening or narrowing cast as needed. cast(expr, type_uptr); return insert_cast(expr, CAST_INTPTR, type); } - -static bool int_to_int(Expr *left, Type *from_canonical, Type *canonical, Type *type) +/** + * Convert an enum to its underlying integer. Is a no-op on for enum expressions. + */ +static void enum_to_int_lowering(Expr* expr) { - assert(from_canonical->canonical == from_canonical); - switch (from_canonical->type_kind) + assert(type_flatten_distinct_optional(expr->type)->type_kind == TYPE_ENUM); + Type *underlying_type = type_flatten_distinct_optional(expr->type)->decl->enums.type_info->type; + if (expr->expr_kind == EXPR_CONST) { - case ALL_SIGNED_INTS: - return int_conversion(left, type_is_unsigned(canonical) ? CAST_SIUI : CAST_SISI, canonical, type); - case ALL_UNSIGNED_INTS: - return int_conversion(left, type_is_unsigned(canonical) ? CAST_UIUI : CAST_UISI, canonical, type); - default: - UNREACHABLE + assert(expr->const_expr.const_kind == CONST_ENUM); + expr_rewrite_const_int(expr, underlying_type, expr->const_expr.enum_err_val->enum_constant.ordinal, false); + } + expr->type = type_add_optional(underlying_type, IS_OPTIONAL(expr)); } -static Type *enum_to_int_cast(Expr* expr, Type *from) -{ - assert(from->type_kind == TYPE_ENUM); - Type *original = from->decl->enums.type_info->type; - expr->type = original; - if (expr->expr_kind == EXPR_CONST && expr->const_expr.const_kind == CONST_ENUM) - { - expr_rewrite_const_int(expr, original, expr->const_expr.enum_err_val->enum_constant.ordinal, false); - return original; - } - insert_cast(expr, CAST_ENUMLOW, type_add_optional(original, IS_OPTIONAL(expr))); - return original; -} - -static bool enum_to_integer(Expr* expr, Type *from, Type *canonical, Type *type) -{ - Type *result = enum_to_int_cast(expr, from); - return int_to_int(expr, result->canonical, canonical, type); -} - -static bool enum_to_float(Expr* expr, Type *from, Type *canonical, Type *type) -{ - Type *result = enum_to_int_cast(expr, from); - return int_to_float(expr, type_is_unsigned(result->canonical) ? CAST_UIFP : CAST_SIFP, canonical, type); -} - -bool enum_to_bool(Expr* expr, Type *from, Type *type) -{ - enum_to_int_cast(expr, from); - return integer_to_bool(expr, type); -} - -bool enum_to_pointer(Expr* expr, Type *from, Type *type) -{ - enum_to_int_cast(expr, from); - return int_to_pointer(expr, type); -} - - +/** + * For implicit casts to bool, in a conditional, return the type of cast to + * insert. + */ CastKind cast_to_bool_kind(Type *type) { switch (type_flatten(type)->type_kind) { - case TYPE_TYPEDEF: - case TYPE_DISTINCT: - case TYPE_INFERRED_ARRAY: - UNREACHABLE case TYPE_BOOL: return CAST_BOOLBOOL; case TYPE_ANYERR: @@ -525,6 +482,10 @@ CastKind cast_to_bool_kind(Type *type) case TYPE_INFERRED_VECTOR: case TYPE_MEMBER: return CAST_ERROR; + case TYPE_TYPEDEF: + case TYPE_DISTINCT: + case TYPE_INFERRED_ARRAY: + UNREACHABLE } UNREACHABLE } @@ -1831,16 +1792,14 @@ static bool vec_to_vec(Expr *expr, Type *to_type) if (type_is_signed(from_element)) { if (to_element == type_bool) return insert_cast(expr, CAST_INTBOOL, to_type); - if (type_is_unsigned(to_element)) return insert_cast(expr, CAST_SIUI, to_type); - if (type_is_signed(to_element)) return insert_cast(expr, CAST_SISI, to_type); - if (type_is_float(to_element)) return insert_cast(expr, CAST_SIFP, to_type); + if (type_is_integer(to_element)) return insert_cast(expr, CAST_INTINT, to_type); + if (type_is_float(to_element)) return insert_cast(expr, CAST_INTFP, to_type); UNREACHABLE } assert(type_is_unsigned(from_element)); if (to_element == type_bool) return insert_cast(expr, CAST_INTBOOL, to_type); - if (type_is_unsigned(to_element)) return insert_cast(expr, CAST_UIUI, to_type); - if (type_is_signed(to_element)) return insert_cast(expr, CAST_UISI, to_type); - if (type_is_float(to_element)) return insert_cast(expr, CAST_UIFP, to_type); + if (type_is_integer(to_element)) return insert_cast(expr, CAST_INTINT, to_type); + if (type_is_float(to_element)) return insert_cast(expr, CAST_INTFP, to_type); UNREACHABLE } @@ -1860,20 +1819,12 @@ static bool err_to_anyerr(Expr *expr, Type *to_type) static bool err_to_bool(Expr *expr, Type *to_type) { - if (expr->expr_kind == EXPR_CONST) - { - switch (expr->const_expr.const_kind) - { - case CONST_INTEGER: - return int_literal_to_bool(expr, to_type); - case CONST_ERR: - expr_rewrite_const_bool(expr, type_bool, expr->const_expr.enum_err_val != NULL); - return true; - default: - UNREACHABLE - } - } - return insert_cast(expr, CAST_ERBOOL, to_type); + if (insert_runtime_cast_unless_const(expr, CAST_ERBOOL, to_type)) return true; + + assert(expr->const_expr.const_kind == CONST_ERR); + + expr_rewrite_const_bool(expr, type_bool, expr->const_expr.enum_err_val != NULL); + return true; } static inline bool subarray_to_subarray(Expr *expr, Type *to_type) @@ -1940,28 +1891,26 @@ static bool cast_inner(Expr *expr, Type *from_type, Type *to, Type *to_type) if (type_is_integer(to)) return insert_cast(expr, CAST_EUINT, to_type); break; case ALL_SIGNED_INTS: - if (type_is_integer_unsigned(to)) return int_conversion(expr, CAST_SIUI, to, to_type); - if (type_is_integer_signed(to)) return int_conversion(expr, CAST_SISI, to, to_type); - if (type_is_float(to)) return int_to_float(expr, CAST_SIFP, to, to_type); + if (type_is_integer(to)) return integer_to_integer(expr, to, to_type); + if (type_is_float(to)) return integer_to_float(expr, to, to_type); if (to == type_bool) return integer_to_bool(expr, to_type); - if (to->type_kind == TYPE_POINTER) return int_to_pointer(expr, to_type); + if (to->type_kind == TYPE_POINTER) return integer_to_pointer(expr, to_type); if (to->type_kind == TYPE_ENUM) return integer_to_enum(expr, to, to_type); - if (type_kind_is_any_vector(to->type_kind)) return int_vector_conversion(expr, to, to_type); + if (type_kind_is_any_vector(to->type_kind)) return integer_expand_to_vector_conversion(expr, to, to_type); break; case ALL_UNSIGNED_INTS: - if (type_is_integer_unsigned(to)) return int_conversion(expr, CAST_UIUI, to, to_type); - if (type_is_integer_signed(to)) return int_conversion(expr, CAST_UISI, to, to_type); - if (type_is_float(to)) return int_to_float(expr, CAST_UIFP, to, to_type); + if (type_is_integer(to)) return integer_to_integer(expr, to, to_type); + if (type_is_float(to)) return integer_to_float(expr, to, to_type); if (to == type_bool) return integer_to_bool(expr, to_type); - if (to->type_kind == TYPE_POINTER) return int_to_pointer(expr, to_type); + if (to->type_kind == TYPE_POINTER) return integer_to_pointer(expr, to_type); if (to->type_kind == TYPE_ENUM) return integer_to_enum(expr, to, to_type); - if (type_kind_is_any_vector(to->type_kind)) return int_vector_conversion(expr, to, to_type); + if (type_kind_is_any_vector(to->type_kind)) return integer_expand_to_vector_conversion(expr, to, to_type); break; case ALL_FLOATS: if (type_is_integer(to)) return float_to_integer(expr, to, to_type); if (to == type_bool) return float_to_bool(expr, to_type); if (type_is_float(to)) return float_to_float(expr, to, to_type); - if (type_kind_is_any_vector(to->type_kind)) return float_vector_conversion(expr, to, to_type); + if (type_kind_is_any_vector(to->type_kind)) return float_expand_to_vector_conversion(expr, to, to_type); break; case TYPE_TYPEID: case TYPE_POINTER: @@ -1975,16 +1924,12 @@ static bool cast_inner(Expr *expr, Type *from_type, Type *to, Type *to_type) if (to->type_kind == TYPE_POINTER) return insert_cast(expr, CAST_ANYPTR, to_type); break; case TYPE_ENUM: - if (type_is_integer(to)) return enum_to_integer(expr, from_type, to, to_type); - if (type_is_float(to)) return enum_to_float(expr, from_type, to, to_type); - if (to == type_bool) return enum_to_bool(expr, from_type, to_type); - if (to->type_kind == TYPE_POINTER) return enum_to_pointer(expr, from_type, to_type); - if (to->type_kind == TYPE_ENUM) - { - Type *temp = type_flatten(to); - if (!enum_to_integer(expr, from_type, temp, temp)) return false; - return integer_to_enum(expr, to, to_type); - } + enum_to_int_lowering(expr); + if (type_is_integer(to)) return integer_to_integer(expr, to, to_type); + if (type_is_float(to)) return integer_to_float(expr, to, to_type); + if (to == type_bool) return integer_to_bool(expr, to_type); + if (to->type_kind == TYPE_POINTER) return integer_to_pointer(expr, to_type); + if (to->type_kind == TYPE_ENUM) return integer_to_enum(expr, to, to_type); break; case TYPE_FAULTTYPE: if (to->type_kind == TYPE_ANYERR) return err_to_anyerr(expr, to_type); diff --git a/src/version.h b/src/version.h index 7cb88485e..b655af700 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define COMPILER_VERSION "0.4.89" \ No newline at end of file +#define COMPILER_VERSION "0.4.90" \ No newline at end of file diff --git a/test/test_suite/abi/riscv32-ilp32-abi.c3t b/test/test_suite/abi/riscv32-ilp32-abi.c3t index b181ed603..57562548f 100644 --- a/test/test_suite/abi/riscv32-ilp32-abi.c3t +++ b/test/test_suite/abi/riscv32-ilp32-abi.c3t @@ -50,9 +50,9 @@ fn void f_agg_stack(double a, long b, double c, long d, Tiny e, define i32 @test.f_scalar_stack_1(i32 %0, i64 %1, float %2, double %3, fp128 %4, i8 zeroext %5, i8 %6, i8 %7) #0 { entry: - %sisiext = sext i8 %6 to i32 - %uisiext = zext i8 %7 to i32 - %add = add i32 %sisiext, %uisiext + %sext = sext i8 %6 to i32 + %zext = zext i8 %7 to i32 + %add = add i32 %sext, %zext ret i32 %add } @@ -64,14 +64,14 @@ entry: %fpsi = fptosi float %1 to i32 store i32 %fpsi, ptr %8, align 4 %9 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 1 - %uisiext = zext i8 %5 to i32 - store i32 %uisiext, ptr %9, align 4 + %zext = zext i8 %5 to i32 + store i32 %zext, ptr %9, align 4 %10 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 2 - %sisiext = sext i8 %6 to i32 - store i32 %sisiext, ptr %10, align 4 + %sext = sext i8 %6 to i32 + store i32 %sext, ptr %10, align 4 %11 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 3 - %uisiext1 = zext i8 %7 to i32 - store i32 %uisiext1, ptr %11, align 4 + %zext1 = zext i8 %7 to i32 + store i32 %zext1, ptr %11, align 4 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %literal, i32 16, i1 false) ret void } diff --git a/test/test_suite/abi/riscv32-ilp32-ilp32f-abi-1.c3t b/test/test_suite/abi/riscv32-ilp32-ilp32f-abi-1.c3t index 38dc2df10..862bfb30f 100644 --- a/test/test_suite/abi/riscv32-ilp32-ilp32f-abi-1.c3t +++ b/test/test_suite/abi/riscv32-ilp32-ilp32f-abi-1.c3t @@ -47,9 +47,9 @@ fn void f_agg_stack(double a, long b, double c, long d, Tiny e, define i32 @test.f_scalar_stack_1(i32 %0, i64 %1, i32 %2, double %3, fp128 %4, i8 zeroext %5, i8 %6, i8 %7) #0 { entry: - %sisiext = sext i8 %6 to i32 - %uisiext = zext i8 %7 to i32 - %add = add i32 %sisiext, %uisiext + %sext = sext i8 %6 to i32 + %zext = zext i8 %7 to i32 + %add = add i32 %sext, %zext ret i32 %add } @@ -59,14 +59,14 @@ entry: %8 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 0 store i32 %1, ptr %8, align 4 %9 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 1 - %uisiext = zext i8 %5 to i32 - store i32 %uisiext, ptr %9, align 4 + %zext = zext i8 %5 to i32 + store i32 %zext, ptr %9, align 4 %10 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 2 - %sisiext = sext i8 %6 to i32 - store i32 %sisiext, ptr %10, align 4 + %sext = sext i8 %6 to i32 + store i32 %sext, ptr %10, align 4 %11 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 3 - %uisiext1 = zext i8 %7 to i32 - store i32 %uisiext1, ptr %11, align 4 + %zext1 = zext i8 %7 to i32 + store i32 %zext1, ptr %11, align 4 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %literal, i32 16, i1 false) ret void } diff --git a/test/test_suite/abi/riscv32-ilp32-ilp32f-ilp32d-abi-1.c3t b/test/test_suite/abi/riscv32-ilp32-ilp32f-ilp32d-abi-1.c3t index 8e140b66d..aa06e0b3f 100644 --- a/test/test_suite/abi/riscv32-ilp32-ilp32f-ilp32d-abi-1.c3t +++ b/test/test_suite/abi/riscv32-ilp32-ilp32f-ilp32d-abi-1.c3t @@ -451,9 +451,9 @@ entry: store i32 %0, ptr %a, align 1 store [2 x i32] %1, ptr %b, align 4 store i64 %2, ptr %c, align 8 - %uisiext = zext i8 %6 to i32 - %sisiext = sext i8 %7 to i32 - %add = add i32 %uisiext, %sisiext + %zext = zext i8 %6 to i32 + %sext = sext i8 %7 to i32 + %add = add i32 %zext, %sext ret i32 %add } @@ -463,14 +463,14 @@ entry: %8 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 0 store i32 %1, ptr %8, align 4 %9 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 1 - %uisiext = zext i8 %5 to i32 - store i32 %uisiext, ptr %9, align 4 + %zext = zext i8 %5 to i32 + store i32 %zext, ptr %9, align 4 %10 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 2 - %sisiext = sext i8 %6 to i32 - store i32 %sisiext, ptr %10, align 4 + %sext = sext i8 %6 to i32 + store i32 %sext, ptr %10, align 4 %11 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 3 - %uisiext1 = zext i8 %7 to i32 - store i32 %uisiext1, ptr %11, align 4 + %zext1 = zext i8 %7 to i32 + store i32 %zext1, ptr %11, align 4 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %literal, i32 16, i1 false) ret void } diff --git a/test/test_suite/abi/riscv64-lp64-abi.c3t b/test/test_suite/abi/riscv64-lp64-abi.c3t index a3e796980..cdad24cd4 100644 --- a/test/test_suite/abi/riscv64-lp64-abi.c3t +++ b/test/test_suite/abi/riscv64-lp64-abi.c3t @@ -21,9 +21,9 @@ fn Large f_scalar_stack_2(double a, int128 b, float128 c, V32i8 d, define signext i32 @test.f_scalar_stack_1(i32 signext %0, i128 %1, float %2, fp128 %3, ptr align 32 %4, i8 zeroext %5, i8 %6, i8 %7) entry: - %uisiext = zext i8 %6 to i32 - %uisiext1 = zext i8 %7 to i32 - %add = add i32 %uisiext, %uisiext1 + %zext = zext i8 %6 to i32 + %zext1 = zext i8 %7 to i32 + %add = add i32 %zext, %zext1 ret i32 %add define void @test.f_scalar_stack_2(ptr noalias sret(%Large) align 8 %0, double %1, i128 %2, fp128 %3, ptr align 32 %4, i8 zeroext %5, i8 %6, i8 %7) @@ -33,13 +33,13 @@ entry: %fpsi = fptosi double %1 to i64 store i64 %fpsi, ptr %8, align 8 %9 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 1 - %uisiext = zext i8 %5 to i64 - store i64 %uisiext, ptr %9, align 8 + %zext = zext i8 %5 to i64 + store i64 %zext, ptr %9, align 8 %10 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 2 - %sisiext = sext i8 %6 to i64 - store i64 %sisiext, ptr %10, align 8 + %sext = sext i8 %6 to i64 + store i64 %sext, ptr %10, align 8 %11 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 3 - %uisiext1 = zext i8 %7 to i64 - store i64 %uisiext1, ptr %11, align 8 + %zext1 = zext i8 %7 to i64 + store i64 %zext1, ptr %11, align 8 call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %literal, i32 32, i1 false) ret void diff --git a/test/test_suite/abi/riscv64-lp64-lp64f-abi-1.c3t b/test/test_suite/abi/riscv64-lp64-lp64f-abi-1.c3t index 913d2f143..e2a2bec11 100644 --- a/test/test_suite/abi/riscv64-lp64-lp64f-abi-1.c3t +++ b/test/test_suite/abi/riscv64-lp64-lp64f-abi-1.c3t @@ -25,9 +25,9 @@ fn Large f_scalar_stack_2(double a, int128 b, float128 c, char[<32>] d, define signext i32 @test.f_scalar_stack_1(i32 signext %0, i128 %1, double %2, fp128 %3, ptr align 32 %4, i8 zeroext %5, i8 %6, i8 %7) #0 { entry: - %sisiext = sext i8 %6 to i32 - %uisiext = zext i8 %7 to i32 - %add = add i32 %sisiext, %uisiext + %sext = sext i8 %6 to i32 + %zext = zext i8 %7 to i32 + %add = add i32 %sext, %zext ret i32 %add } @@ -38,14 +38,14 @@ entry: %fpsi = fptosi double %1 to i64 store i64 %fpsi, ptr %8, align 8 %9 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 1 - %uisiext = zext i8 %5 to i64 - store i64 %uisiext, ptr %9, align 8 + %zext = zext i8 %5 to i64 + store i64 %zext, ptr %9, align 8 %10 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 2 - %sisiext = sext i8 %6 to i64 - store i64 %sisiext, ptr %10, align 8 + %sext = sext i8 %6 to i64 + store i64 %sext, ptr %10, align 8 %11 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 3 - %uisiext1 = zext i8 %7 to i64 - store i64 %uisiext1, ptr %11, align 8 + %zext1 = zext i8 %7 to i64 + store i64 %zext1, ptr %11, align 8 call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %literal, i32 32, i1 false) ret void } \ No newline at end of file diff --git a/test/test_suite/abi/riscv64-lp64-lp64f-abi-2.c3t b/test/test_suite/abi/riscv64-lp64-lp64f-abi-2.c3t index f4d055a7d..48742faa1 100644 --- a/test/test_suite/abi/riscv64-lp64-lp64f-abi-2.c3t +++ b/test/test_suite/abi/riscv64-lp64-lp64f-abi-2.c3t @@ -26,9 +26,9 @@ fn Large f_scalar_stack_2(double a, int128 b, float128 c, char[<32>] d, define signext i32 @test.f_scalar_stack_1(i32 signext %0, i128 %1, double %2, fp128 %3, ptr align 32 %4, i8 zeroext %5, i8 %6, i8 %7) #0 { entry: - %sisiext = sext i8 %6 to i32 - %uisiext = zext i8 %7 to i32 - %add = add i32 %sisiext, %uisiext + %sext = sext i8 %6 to i32 + %zext = zext i8 %7 to i32 + %add = add i32 %sext, %zext ret i32 %add } @@ -39,14 +39,14 @@ entry: %fpsi = fptosi double %1 to i64 store i64 %fpsi, ptr %8, align 8 %9 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 1 - %uisiext = zext i8 %5 to i64 - store i64 %uisiext, ptr %9, align 8 + %zext = zext i8 %5 to i64 + store i64 %zext, ptr %9, align 8 %10 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 2 - %sisiext = sext i8 %6 to i64 - store i64 %sisiext, ptr %10, align 8 + %sext = sext i8 %6 to i64 + store i64 %sext, ptr %10, align 8 %11 = getelementptr inbounds %Large, ptr %literal, i32 0, i32 3 - %uisiext1 = zext i8 %7 to i64 - store i64 %uisiext1, ptr %11, align 8 + %zext1 = zext i8 %7 to i64 + store i64 %zext1, ptr %11, align 8 call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %literal, i32 32, i1 false) ret void } \ No newline at end of file diff --git a/test/test_suite/abi/small_struct_x64.c3t b/test/test_suite/abi/small_struct_x64.c3t index be9686e91..aa286b96d 100644 --- a/test/test_suite/abi/small_struct_x64.c3t +++ b/test/test_suite/abi/small_struct_x64.c3t @@ -47,11 +47,11 @@ entry: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %y, ptr align 1 %result, i32 3, i1 false) %5 = getelementptr inbounds %Foo, ptr %y, i32 0, i32 0 %6 = load i8, ptr %5, align 1 - %uisiext = zext i8 %6 to i32 + %zext = zext i8 %6 to i32 %7 = getelementptr inbounds %Foo, ptr %y, i32 0, i32 2 %8 = load i8, ptr %7, align 1 - %uisiext2 = zext i8 %8 to i32 - %add = add i32 %uisiext, %uisiext2 + %zext2 = zext i8 %8 to i32 + %add = add i32 %zext, %zext2 ret i32 %add } diff --git a/test/test_suite/arrays/index_from_back.c3t b/test/test_suite/arrays/index_from_back.c3t index b91ba565c..f8880220e 100644 --- a/test/test_suite/arrays/index_from_back.c3t +++ b/test/test_suite/arrays/index_from_back.c3t @@ -39,13 +39,13 @@ entry: store i32 3, ptr %j, align 4 %10 = load <10 x i32>, ptr %1, align 64 %11 = load i32, ptr %j, align 4 - %sisiext = sext i32 %11 to i64 - %12 = sub nuw i64 10, %sisiext + %sext = sext i32 %11 to i64 + %12 = sub nuw i64 10, %sext %13 = extractelement <10 x i32> %10, i64 %12 store i32 %13, ptr %e, align 4 %14 = load i32, ptr %j, align 4 - %sisiext1 = sext i32 %14 to i64 - %15 = sub nuw i64 10, %sisiext1 + %sext1 = sext i32 %14 to i64 + %15 = sub nuw i64 10, %sext1 %16 = getelementptr inbounds [10 x i32], ptr %0, i64 0, i64 %15 %17 = load i32, ptr %16, align 4 store i32 %17, ptr %f, align 4 diff --git a/test/test_suite/arrays/index_into_global.c3t b/test/test_suite/arrays/index_into_global.c3t index 544e7c53e..2e22914e9 100644 --- a/test/test_suite/arrays/index_into_global.c3t +++ b/test/test_suite/arrays/index_into_global.c3t @@ -24,8 +24,8 @@ fn void test_bar(int idx) define void @foo.test_bar(i32 %0) #0 { entry: - %sisiext = sext i32 %0 to i64 - %1 = getelementptr inbounds [6 x %Bar], ptr @foo.bar, i64 0, i64 %sisiext + %sext = sext i32 %0 to i64 + %1 = getelementptr inbounds [6 x %Bar], ptr @foo.bar, i64 0, i64 %sext %2 = getelementptr inbounds %Bar, ptr %1, i32 0, i32 0 store i32 0, ptr %2, align 4 store i32 %0, ptr @foo.bar, align 4 diff --git a/test/test_suite/bitstruct/bitstruct_arrays.c3t b/test/test_suite/bitstruct/bitstruct_arrays.c3t index fe4def452..501b95ee7 100644 --- a/test/test_suite/bitstruct/bitstruct_arrays.c3t +++ b/test/test_suite/bitstruct/bitstruct_arrays.c3t @@ -315,8 +315,8 @@ entry: %92 = load i64, ptr %xx, align 8 %lshrl = lshr i64 %92, 20 %93 = and i64 1, %lshrl - %ztrunc = trunc i64 %93 to i8 - %94 = trunc i8 %ztrunc to i1 + %trunc = trunc i64 %93 to i8 + %94 = trunc i8 %trunc to i1 %boolsi = zext i1 %94 to i32 call void (ptr, ...) @printf(ptr @.str.9, i32 %boolsi) %95 = load i64, ptr %xx, align 8 @@ -325,8 +325,8 @@ entry: %97 = load i64, ptr %xx, align 8 %lshrl67 = lshr i64 %97, 20 %98 = and i64 1, %lshrl67 - %ztrunc68 = trunc i64 %98 to i8 - %99 = trunc i8 %ztrunc68 to i1 + %trunc68 = trunc i64 %98 to i8 + %99 = trunc i8 %trunc68 to i1 %boolsi69 = zext i1 %99 to i32 call void (ptr, ...) @printf(ptr @.str.10, i32 %boolsi69) ret void @@ -366,8 +366,8 @@ entry: %ashr8 = ashr i32 %shl7, 29 %sub = sub i32 %ashr8, 1 %13 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 - %ztrunc = trunc i32 %sub to i8 - %14 = and i8 %ztrunc, 7 + %trunc = trunc i32 %sub to i8 + %14 = and i8 %trunc, 7 %15 = load i8, ptr %13, align 1 %16 = and i8 %15, -8 %17 = or i8 %16, %14 @@ -403,15 +403,15 @@ entry: %mul = mul i32 %ashr23, 2 %30 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl24 = shl i32 %mul, 3 - %ztrunc25 = trunc i32 %shl24 to i8 + %trunc25 = trunc i32 %shl24 to i8 %31 = load i8, ptr %30, align 1 %32 = and i8 %31, 7 - %33 = or i8 %32, %ztrunc25 + %33 = or i8 %32, %trunc25 store i8 %33, ptr %30, align 1 %lshrl26 = lshr i32 %mul, 5 %34 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc27 = trunc i32 %lshrl26 to i8 - %35 = and i8 %ztrunc27, 1 + %trunc27 = trunc i32 %lshrl26 to i8 + %35 = and i8 %trunc27, 1 %36 = load i8, ptr %34, align 1 %37 = and i8 %36, -2 %38 = or i8 %37, %35 @@ -447,15 +447,15 @@ entry: %xor = xor i32 %ashr42, 4 %51 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl43 = shl i32 %xor, 3 - %ztrunc44 = trunc i32 %shl43 to i8 + %trunc44 = trunc i32 %shl43 to i8 %52 = load i8, ptr %51, align 1 %53 = and i8 %52, 7 - %54 = or i8 %53, %ztrunc44 + %54 = or i8 %53, %trunc44 store i8 %54, ptr %51, align 1 %lshrl45 = lshr i32 %xor, 5 %55 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc46 = trunc i32 %lshrl45 to i8 - %56 = and i8 %ztrunc46, 1 + %trunc46 = trunc i32 %lshrl45 to i8 + %56 = and i8 %trunc46, 1 %57 = load i8, ptr %55, align 1 %58 = and i8 %57, -2 %59 = or i8 %58, %56 @@ -491,15 +491,15 @@ entry: %or = or i32 %ashr61, 4 %72 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl62 = shl i32 %or, 3 - %ztrunc63 = trunc i32 %shl62 to i8 + %trunc63 = trunc i32 %shl62 to i8 %73 = load i8, ptr %72, align 1 %74 = and i8 %73, 7 - %75 = or i8 %74, %ztrunc63 + %75 = or i8 %74, %trunc63 store i8 %75, ptr %72, align 1 %lshrl64 = lshr i32 %or, 5 %76 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc65 = trunc i32 %lshrl64 to i8 - %77 = and i8 %ztrunc65, 1 + %trunc65 = trunc i32 %lshrl64 to i8 + %77 = and i8 %trunc65, 1 %78 = load i8, ptr %76, align 1 %79 = and i8 %78, -2 %80 = or i8 %79, %77 @@ -536,15 +536,15 @@ entry: %93 = freeze i32 %shl81 %94 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl82 = shl i32 %93, 3 - %ztrunc83 = trunc i32 %shl82 to i8 + %trunc83 = trunc i32 %shl82 to i8 %95 = load i8, ptr %94, align 1 %96 = and i8 %95, 7 - %97 = or i8 %96, %ztrunc83 + %97 = or i8 %96, %trunc83 store i8 %97, ptr %94, align 1 %lshrl84 = lshr i32 %93, 5 %98 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc85 = trunc i32 %lshrl84 to i8 - %99 = and i8 %ztrunc85, 1 + %trunc85 = trunc i32 %lshrl84 to i8 + %99 = and i8 %trunc85, 1 %100 = load i8, ptr %98, align 1 %101 = and i8 %100, -2 %102 = or i8 %101, %99 @@ -581,15 +581,15 @@ entry: %115 = freeze i32 %ashr101 %116 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl102 = shl i32 %115, 3 - %ztrunc103 = trunc i32 %shl102 to i8 + %trunc103 = trunc i32 %shl102 to i8 %117 = load i8, ptr %116, align 1 %118 = and i8 %117, 7 - %119 = or i8 %118, %ztrunc103 + %119 = or i8 %118, %trunc103 store i8 %119, ptr %116, align 1 %lshrl104 = lshr i32 %115, 5 %120 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc105 = trunc i32 %lshrl104 to i8 - %121 = and i8 %ztrunc105, 1 + %trunc105 = trunc i32 %lshrl104 to i8 + %121 = and i8 %trunc105, 1 %122 = load i8, ptr %120, align 1 %123 = and i8 %122, -2 %124 = or i8 %123, %121 @@ -625,15 +625,15 @@ entry: %sdiv = sdiv i32 %ashr120, 2 %137 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl121 = shl i32 %sdiv, 3 - %ztrunc122 = trunc i32 %shl121 to i8 + %trunc122 = trunc i32 %shl121 to i8 %138 = load i8, ptr %137, align 1 %139 = and i8 %138, 7 - %140 = or i8 %139, %ztrunc122 + %140 = or i8 %139, %trunc122 store i8 %140, ptr %137, align 1 %lshrl123 = lshr i32 %sdiv, 5 %141 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc124 = trunc i32 %lshrl123 to i8 - %142 = and i8 %ztrunc124, 1 + %trunc124 = trunc i32 %lshrl123 to i8 + %142 = and i8 %trunc124, 1 %143 = load i8, ptr %141, align 1 %144 = and i8 %143, -2 %145 = or i8 %144, %142 @@ -669,15 +669,15 @@ entry: %smod = srem i32 %ashr139, 2 %158 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl140 = shl i32 %smod, 3 - %ztrunc141 = trunc i32 %shl140 to i8 + %trunc141 = trunc i32 %shl140 to i8 %159 = load i8, ptr %158, align 1 %160 = and i8 %159, 7 - %161 = or i8 %160, %ztrunc141 + %161 = or i8 %160, %trunc141 store i8 %161, ptr %158, align 1 %lshrl142 = lshr i32 %smod, 5 %162 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc143 = trunc i32 %lshrl142 to i8 - %163 = and i8 %ztrunc143, 1 + %trunc143 = trunc i32 %lshrl142 to i8 + %163 = and i8 %trunc143, 1 %164 = load i8, ptr %162, align 1 %165 = and i8 %164, -2 %166 = or i8 %165, %163 @@ -766,8 +766,8 @@ entry: %sub = sub i32 %ashr10, 1 %13 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl11 = shl i32 %sub, 1 - %ztrunc = trunc i32 %shl11 to i8 - %14 = and i8 %ztrunc, 15 + %trunc = trunc i32 %shl11 to i8 + %14 = and i8 %trunc, 15 %15 = load i8, ptr %13, align 1 %16 = and i8 %15, -15 %17 = or i8 %16, %14 @@ -805,15 +805,15 @@ entry: %mul = mul i32 %ashr28, 2 %30 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl29 = shl i32 %mul, 4 - %ztrunc30 = trunc i32 %shl29 to i8 + %trunc30 = trunc i32 %shl29 to i8 %31 = load i8, ptr %30, align 1 %32 = and i8 %31, 15 - %33 = or i8 %32, %ztrunc30 + %33 = or i8 %32, %trunc30 store i8 %33, ptr %30, align 1 %lshrl31 = lshr i32 %mul, 4 %34 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc32 = trunc i32 %lshrl31 to i8 - %35 = and i8 %ztrunc32, 3 + %trunc32 = trunc i32 %lshrl31 to i8 + %35 = and i8 %trunc32, 3 %36 = load i8, ptr %34, align 1 %37 = and i8 %36, -4 %38 = or i8 %37, %35 @@ -850,15 +850,15 @@ entry: %xor = xor i32 %ashr48, 4 %51 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl49 = shl i32 %xor, 4 - %ztrunc50 = trunc i32 %shl49 to i8 + %trunc50 = trunc i32 %shl49 to i8 %52 = load i8, ptr %51, align 1 %53 = and i8 %52, 15 - %54 = or i8 %53, %ztrunc50 + %54 = or i8 %53, %trunc50 store i8 %54, ptr %51, align 1 %lshrl51 = lshr i32 %xor, 4 %55 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc52 = trunc i32 %lshrl51 to i8 - %56 = and i8 %ztrunc52, 3 + %trunc52 = trunc i32 %lshrl51 to i8 + %56 = and i8 %trunc52, 3 %57 = load i8, ptr %55, align 1 %58 = and i8 %57, -4 %59 = or i8 %58, %56 @@ -895,15 +895,15 @@ entry: %or = or i32 %ashr68, 4 %72 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl69 = shl i32 %or, 4 - %ztrunc70 = trunc i32 %shl69 to i8 + %trunc70 = trunc i32 %shl69 to i8 %73 = load i8, ptr %72, align 1 %74 = and i8 %73, 15 - %75 = or i8 %74, %ztrunc70 + %75 = or i8 %74, %trunc70 store i8 %75, ptr %72, align 1 %lshrl71 = lshr i32 %or, 4 %76 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc72 = trunc i32 %lshrl71 to i8 - %77 = and i8 %ztrunc72, 3 + %trunc72 = trunc i32 %lshrl71 to i8 + %77 = and i8 %trunc72, 3 %78 = load i8, ptr %76, align 1 %79 = and i8 %78, -4 %80 = or i8 %79, %77 @@ -941,15 +941,15 @@ entry: %93 = freeze i32 %shl89 %94 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl90 = shl i32 %93, 4 - %ztrunc91 = trunc i32 %shl90 to i8 + %trunc91 = trunc i32 %shl90 to i8 %95 = load i8, ptr %94, align 1 %96 = and i8 %95, 15 - %97 = or i8 %96, %ztrunc91 + %97 = or i8 %96, %trunc91 store i8 %97, ptr %94, align 1 %lshrl92 = lshr i32 %93, 4 %98 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc93 = trunc i32 %lshrl92 to i8 - %99 = and i8 %ztrunc93, 3 + %trunc93 = trunc i32 %lshrl92 to i8 + %99 = and i8 %trunc93, 3 %100 = load i8, ptr %98, align 1 %101 = and i8 %100, -4 %102 = or i8 %101, %99 @@ -987,15 +987,15 @@ entry: %115 = freeze i32 %ashr110 %116 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl111 = shl i32 %115, 4 - %ztrunc112 = trunc i32 %shl111 to i8 + %trunc112 = trunc i32 %shl111 to i8 %117 = load i8, ptr %116, align 1 %118 = and i8 %117, 15 - %119 = or i8 %118, %ztrunc112 + %119 = or i8 %118, %trunc112 store i8 %119, ptr %116, align 1 %lshrl113 = lshr i32 %115, 4 %120 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc114 = trunc i32 %lshrl113 to i8 - %121 = and i8 %ztrunc114, 3 + %trunc114 = trunc i32 %lshrl113 to i8 + %121 = and i8 %trunc114, 3 %122 = load i8, ptr %120, align 1 %123 = and i8 %122, -4 %124 = or i8 %123, %121 @@ -1032,15 +1032,15 @@ entry: %sdiv = sdiv i32 %ashr130, 2 %137 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl131 = shl i32 %sdiv, 4 - %ztrunc132 = trunc i32 %shl131 to i8 + %trunc132 = trunc i32 %shl131 to i8 %138 = load i8, ptr %137, align 1 %139 = and i8 %138, 15 - %140 = or i8 %139, %ztrunc132 + %140 = or i8 %139, %trunc132 store i8 %140, ptr %137, align 1 %lshrl133 = lshr i32 %sdiv, 4 %141 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc134 = trunc i32 %lshrl133 to i8 - %142 = and i8 %ztrunc134, 3 + %trunc134 = trunc i32 %lshrl133 to i8 + %142 = and i8 %trunc134, 3 %143 = load i8, ptr %141, align 1 %144 = and i8 %143, -4 %145 = or i8 %144, %142 @@ -1077,15 +1077,15 @@ entry: %smod = srem i32 %ashr150, 2 %158 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 0 %shl151 = shl i32 %smod, 4 - %ztrunc152 = trunc i32 %shl151 to i8 + %trunc152 = trunc i32 %shl151 to i8 %159 = load i8, ptr %158, align 1 %160 = and i8 %159, 15 - %161 = or i8 %160, %ztrunc152 + %161 = or i8 %160, %trunc152 store i8 %161, ptr %158, align 1 %lshrl153 = lshr i32 %smod, 4 %162 = getelementptr inbounds [3 x i8], ptr %xx, i64 0, i64 1 - %ztrunc154 = trunc i32 %lshrl153 to i8 - %163 = and i8 %ztrunc154, 3 + %trunc154 = trunc i32 %lshrl153 to i8 + %163 = and i8 %trunc154, 3 %164 = load i8, ptr %162, align 1 %165 = and i8 %164, -4 %166 = or i8 %165, %163 diff --git a/test/test_suite/bitstruct/bitstruct_be.c3t b/test/test_suite/bitstruct/bitstruct_be.c3t index f6d51af72..2c4a71c35 100644 --- a/test/test_suite/bitstruct/bitstruct_be.c3t +++ b/test/test_suite/bitstruct/bitstruct_be.c3t @@ -129,8 +129,8 @@ loop.exit15: ; preds = %loop.cond8 %39 = load i32, ptr %abc, align 4 %40 = call i32 @llvm.bswap.i32(i32 %39) %41 = and i32 65535, %40 - %ztrunc = trunc i32 %41 to i16 - store i16 %ztrunc, ptr %taddr21, align 2 + %trunc = trunc i32 %41 to i16 + store i16 %trunc, ptr %taddr21, align 2 %42 = insertvalue %variant undef, ptr %taddr21, 0 %43 = insertvalue %variant %42, i64 ptrtoint (ptr @"$ct.ushort" to i64), 1 %44 = getelementptr inbounds [1 x %variant], ptr %varargslots20, i64 0, i64 0 @@ -151,8 +151,8 @@ loop.exit15: ; preds = %loop.cond8 %56 = load i32, ptr %abc, align 4 %57 = call i32 @llvm.bswap.i32(i32 %56) %58 = and i32 65535, %57 - %ztrunc24 = trunc i32 %58 to i16 - store i16 %ztrunc24, ptr %taddr25, align 2 + %trunc24 = trunc i32 %58 to i16 + store i16 %trunc24, ptr %taddr25, align 2 %59 = insertvalue %variant undef, ptr %taddr25, 0 %60 = insertvalue %variant %59, i64 ptrtoint (ptr @"$ct.ushort" to i64), 1 %61 = getelementptr inbounds [1 x %variant], ptr %varargslots23, i64 0, i64 0 diff --git a/test/test_suite/bitstruct/bitstruct_initializer.c3t b/test/test_suite/bitstruct/bitstruct_initializer.c3t index a31a8b839..be906da49 100644 --- a/test/test_suite/bitstruct/bitstruct_initializer.c3t +++ b/test/test_suite/bitstruct/bitstruct_initializer.c3t @@ -130,20 +130,20 @@ entry: %21 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 7 store i8 0, ptr %21, align 1 %22 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 0 - %ztrunc = trunc i32 %0 to i8 - store i8 %ztrunc, ptr %22, align 1 + %trunc = trunc i32 %0 to i8 + store i8 %trunc, ptr %22, align 1 %lshrl = lshr i32 %0, 8 %23 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 1 - %ztrunc2 = trunc i32 %lshrl to i8 - store i8 %ztrunc2, ptr %23, align 1 + %trunc2 = trunc i32 %lshrl to i8 + store i8 %trunc2, ptr %23, align 1 %lshrl3 = lshr i32 %lshrl, 8 %24 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 2 - %ztrunc4 = trunc i32 %lshrl3 to i8 - store i8 %ztrunc4, ptr %24, align 1 + %trunc4 = trunc i32 %lshrl3 to i8 + store i8 %trunc4, ptr %24, align 1 %lshrl5 = lshr i32 %lshrl3, 8 %25 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 3 - %ztrunc6 = trunc i32 %lshrl5 to i8 - store i8 %ztrunc6, ptr %25, align 1 + %trunc6 = trunc i32 %lshrl5 to i8 + store i8 %trunc6, ptr %25, align 1 %lshrl7 = lshr i32 %lshrl5, 8 %lt8 = icmp slt i32 %0, 100 %26 = zext i1 %lt8 to i8 @@ -155,8 +155,8 @@ entry: store i8 %30, ptr %27, align 1 %31 = load i64, ptr %x, align 8 %32 = and i64 4294967295, %31 - %ztrunc10 = trunc i64 %32 to i32 - store i32 %ztrunc10, ptr %taddr, align 4 + %trunc10 = trunc i64 %32 to i32 + store i32 %trunc10, ptr %taddr, align 4 %33 = insertvalue %variant undef, ptr %taddr, 0 %34 = insertvalue %variant %33, i64 ptrtoint (ptr @"$ct.uint" to i64), 1 %35 = getelementptr inbounds [3 x %variant], ptr %varargslots, i64 0, i64 0 @@ -164,8 +164,8 @@ entry: %36 = load i64, ptr %x, align 8 %lshrl11 = lshr i64 %36, 32 %37 = and i64 2147483647, %lshrl11 - %ztrunc12 = trunc i64 %37 to i32 - store i32 %ztrunc12, ptr %taddr13, align 4 + %trunc12 = trunc i64 %37 to i32 + store i32 %trunc12, ptr %taddr13, align 4 %38 = insertvalue %variant undef, ptr %taddr13, 0 %39 = insertvalue %variant %38, i64 ptrtoint (ptr @"$ct.uint" to i64), 1 %40 = getelementptr inbounds [3 x %variant], ptr %varargslots, i64 0, i64 1 @@ -173,8 +173,8 @@ entry: %41 = load i64, ptr %x, align 8 %lshrl14 = lshr i64 %41, 63 %42 = and i64 1, %lshrl14 - %ztrunc15 = trunc i64 %42 to i8 - store i8 %ztrunc15, ptr %taddr16, align 1 + %trunc15 = trunc i64 %42 to i8 + store i8 %trunc15, ptr %taddr16, align 1 %43 = insertvalue %variant undef, ptr %taddr16, 0 %44 = insertvalue %variant %43, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %45 = getelementptr inbounds [3 x %variant], ptr %varargslots, i64 0, i64 2 @@ -183,8 +183,8 @@ entry: %47 = getelementptr inbounds %Abc, ptr %y, i32 0, i32 1 %48 = load i64, ptr %47, align 8 %49 = and i64 4294967295, %48 - %ztrunc19 = trunc i64 %49 to i32 - store i32 %ztrunc19, ptr %taddr20, align 4 + %trunc19 = trunc i64 %49 to i32 + store i32 %trunc19, ptr %taddr20, align 4 %50 = insertvalue %variant undef, ptr %taddr20, 0 %51 = insertvalue %variant %50, i64 ptrtoint (ptr @"$ct.uint" to i64), 1 %52 = getelementptr inbounds [3 x %variant], ptr %varargslots18, i64 0, i64 0 @@ -193,8 +193,8 @@ entry: %54 = load i64, ptr %53, align 8 %lshrl21 = lshr i64 %54, 32 %55 = and i64 2147483647, %lshrl21 - %ztrunc22 = trunc i64 %55 to i32 - store i32 %ztrunc22, ptr %taddr23, align 4 + %trunc22 = trunc i64 %55 to i32 + store i32 %trunc22, ptr %taddr23, align 4 %56 = insertvalue %variant undef, ptr %taddr23, 0 %57 = insertvalue %variant %56, i64 ptrtoint (ptr @"$ct.uint" to i64), 1 %58 = getelementptr inbounds [3 x %variant], ptr %varargslots18, i64 0, i64 1 @@ -203,8 +203,8 @@ entry: %60 = load i64, ptr %59, align 8 %lshrl24 = lshr i64 %60, 63 %61 = and i64 1, %lshrl24 - %ztrunc25 = trunc i64 %61 to i8 - store i8 %ztrunc25, ptr %taddr26, align 1 + %trunc25 = trunc i64 %61 to i8 + store i8 %trunc25, ptr %taddr26, align 1 %62 = insertvalue %variant undef, ptr %taddr26, 0 %63 = insertvalue %variant %62, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %64 = getelementptr inbounds [3 x %variant], ptr %varargslots18, i64 0, i64 2 @@ -301,20 +301,20 @@ entry: store i8 0, ptr %118, align 1 %add50 = add i32 %0, 1 %119 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 0 - %ztrunc51 = trunc i32 %add50 to i8 - store i8 %ztrunc51, ptr %119, align 1 + %trunc51 = trunc i32 %add50 to i8 + store i8 %trunc51, ptr %119, align 1 %lshrl52 = lshr i32 %add50, 8 %120 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 1 - %ztrunc53 = trunc i32 %lshrl52 to i8 - store i8 %ztrunc53, ptr %120, align 1 + %trunc53 = trunc i32 %lshrl52 to i8 + store i8 %trunc53, ptr %120, align 1 %lshrl54 = lshr i32 %lshrl52, 8 %121 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 2 - %ztrunc55 = trunc i32 %lshrl54 to i8 - store i8 %ztrunc55, ptr %121, align 1 + %trunc55 = trunc i32 %lshrl54 to i8 + store i8 %trunc55, ptr %121, align 1 %lshrl56 = lshr i32 %lshrl54, 8 %122 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 3 - %ztrunc57 = trunc i32 %lshrl56 to i8 - store i8 %ztrunc57, ptr %122, align 1 + %trunc57 = trunc i32 %lshrl56 to i8 + store i8 %trunc57, ptr %122, align 1 %lshrl58 = lshr i32 %lshrl56, 8 %123 = getelementptr inbounds [8 x i8], ptr %b, i64 0, i64 4 store i8 1, ptr %123, align 1 @@ -336,8 +336,8 @@ entry: store i8 %133, ptr %130, align 1 %134 = load i64, ptr %x, align 8 %135 = and i64 4294967295, %134 - %ztrunc63 = trunc i64 %135 to i32 - store i32 %ztrunc63, ptr %taddr64, align 4 + %trunc63 = trunc i64 %135 to i32 + store i32 %trunc63, ptr %taddr64, align 4 %136 = insertvalue %variant undef, ptr %taddr64, 0 %137 = insertvalue %variant %136, i64 ptrtoint (ptr @"$ct.uint" to i64), 1 %138 = getelementptr inbounds [3 x %variant], ptr %varargslots62, i64 0, i64 0 @@ -345,8 +345,8 @@ entry: %139 = load i64, ptr %x, align 8 %lshrl65 = lshr i64 %139, 32 %140 = and i64 2147483647, %lshrl65 - %ztrunc66 = trunc i64 %140 to i32 - store i32 %ztrunc66, ptr %taddr67, align 4 + %trunc66 = trunc i64 %140 to i32 + store i32 %trunc66, ptr %taddr67, align 4 %141 = insertvalue %variant undef, ptr %taddr67, 0 %142 = insertvalue %variant %141, i64 ptrtoint (ptr @"$ct.uint" to i64), 1 %143 = getelementptr inbounds [3 x %variant], ptr %varargslots62, i64 0, i64 1 @@ -354,8 +354,8 @@ entry: %144 = load i64, ptr %x, align 8 %lshrl68 = lshr i64 %144, 63 %145 = and i64 1, %lshrl68 - %ztrunc69 = trunc i64 %145 to i8 - store i8 %ztrunc69, ptr %taddr70, align 1 + %trunc69 = trunc i64 %145 to i8 + store i8 %trunc69, ptr %taddr70, align 1 %146 = insertvalue %variant undef, ptr %taddr70, 0 %147 = insertvalue %variant %146, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %148 = getelementptr inbounds [3 x %variant], ptr %varargslots62, i64 0, i64 2 @@ -364,8 +364,8 @@ entry: %150 = getelementptr inbounds %Abc, ptr %y, i32 0, i32 1 %151 = load i64, ptr %150, align 8 %152 = and i64 4294967295, %151 - %ztrunc73 = trunc i64 %152 to i32 - store i32 %ztrunc73, ptr %taddr74, align 4 + %trunc73 = trunc i64 %152 to i32 + store i32 %trunc73, ptr %taddr74, align 4 %153 = insertvalue %variant undef, ptr %taddr74, 0 %154 = insertvalue %variant %153, i64 ptrtoint (ptr @"$ct.uint" to i64), 1 %155 = getelementptr inbounds [3 x %variant], ptr %varargslots72, i64 0, i64 0 @@ -374,8 +374,8 @@ entry: %157 = load i64, ptr %156, align 8 %lshrl75 = lshr i64 %157, 32 %158 = and i64 2147483647, %lshrl75 - %ztrunc76 = trunc i64 %158 to i32 - store i32 %ztrunc76, ptr %taddr77, align 4 + %trunc76 = trunc i64 %158 to i32 + store i32 %trunc76, ptr %taddr77, align 4 %159 = insertvalue %variant undef, ptr %taddr77, 0 %160 = insertvalue %variant %159, i64 ptrtoint (ptr @"$ct.uint" to i64), 1 %161 = getelementptr inbounds [3 x %variant], ptr %varargslots72, i64 0, i64 1 @@ -384,8 +384,8 @@ entry: %163 = load i64, ptr %162, align 8 %lshrl78 = lshr i64 %163, 63 %164 = and i64 1, %lshrl78 - %ztrunc79 = trunc i64 %164 to i8 - store i8 %ztrunc79, ptr %taddr80, align 1 + %trunc79 = trunc i64 %164 to i8 + store i8 %trunc79, ptr %taddr80, align 1 %165 = insertvalue %variant undef, ptr %taddr80, 0 %166 = insertvalue %variant %165, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %167 = getelementptr inbounds [3 x %variant], ptr %varargslots72, i64 0, i64 2 diff --git a/test/test_suite/bitstruct/bitstruct_intcontainer.c3t b/test/test_suite/bitstruct/bitstruct_intcontainer.c3t index bb2a46ddd..ce26f7058 100644 --- a/test/test_suite/bitstruct/bitstruct_intcontainer.c3t +++ b/test/test_suite/bitstruct/bitstruct_intcontainer.c3t @@ -74,32 +74,32 @@ entry: %4 = load i64, ptr %xxy, align 8 %lshrl3 = lshr i64 %4, 5 %5 = and i64 262143, %lshrl3 - %ztrunc = trunc i64 %5 to i32 + %trunc = trunc i64 %5 to i32 %6 = load i64, ptr %xxy, align 8 %lshrl4 = lshr i64 %6, 23 %7 = and i64 262143, %lshrl4 - %ztrunc5 = trunc i64 %7 to i32 + %trunc5 = trunc i64 %7 to i32 %8 = load i64, ptr %xxy, align 8 %lshrl6 = lshr i64 %8, 41 %9 = and i64 2097151, %lshrl6 - %ztrunc7 = trunc i64 %9 to i32 - call void (ptr, ...) @printf(ptr @.str.3, i32 %ztrunc, i32 %ztrunc5, i32 %ztrunc7) + %trunc7 = trunc i64 %9 to i32 + call void (ptr, ...) @printf(ptr @.str.3, i32 %trunc, i32 %trunc5, i32 %trunc7) store i64 2292133196431502101, ptr %xxybe, align 8 %10 = load i64, ptr %xxybe, align 8 %11 = call i64 @llvm.bswap.i64(i64 %10) %lshrl8 = lshr i64 %11, 5 %12 = and i64 262143, %lshrl8 - %ztrunc9 = trunc i64 %12 to i32 + %trunc9 = trunc i64 %12 to i32 %13 = load i64, ptr %xxybe, align 8 %14 = call i64 @llvm.bswap.i64(i64 %13) %lshrl10 = lshr i64 %14, 23 %15 = and i64 262143, %lshrl10 - %ztrunc11 = trunc i64 %15 to i32 + %trunc11 = trunc i64 %15 to i32 %16 = load i64, ptr %xxybe, align 8 %17 = call i64 @llvm.bswap.i64(i64 %16) %lshrl12 = lshr i64 %17, 41 %18 = and i64 2097151, %lshrl12 - %ztrunc13 = trunc i64 %18 to i32 - call void (ptr, ...) @printf(ptr @.str.4, i32 %ztrunc9, i32 %ztrunc11, i32 %ztrunc13) + %trunc13 = trunc i64 %18 to i32 + call void (ptr, ...) @printf(ptr @.str.4, i32 %trunc9, i32 %trunc11, i32 %trunc13) ret void } \ No newline at end of file diff --git a/test/test_suite/bitstruct/bitstruct_ops.c3t b/test/test_suite/bitstruct/bitstruct_ops.c3t index 866cb0b5e..691d6b8a9 100644 --- a/test/test_suite/bitstruct/bitstruct_ops.c3t +++ b/test/test_suite/bitstruct/bitstruct_ops.c3t @@ -95,8 +95,8 @@ entry: store i32 %and, ptr %f3, align 4 %5 = load i32, ptr %f3, align 4 %6 = and i32 1, %5 - %ztrunc = trunc i32 %6 to i8 - store i8 %ztrunc, ptr %taddr, align 1 + %trunc = trunc i32 %6 to i8 + store i8 %trunc, ptr %taddr, align 1 %7 = insertvalue %variant undef, ptr %taddr, 0 %8 = insertvalue %variant %7, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %9 = getelementptr inbounds [2 x %variant], ptr %varargslots, i64 0, i64 0 @@ -104,8 +104,8 @@ entry: %10 = load i32, ptr %f3, align 4 %lshrl = lshr i32 %10, 1 %11 = and i32 1, %lshrl - %ztrunc1 = trunc i32 %11 to i8 - store i8 %ztrunc1, ptr %taddr2, align 1 + %trunc1 = trunc i32 %11 to i8 + store i8 %trunc1, ptr %taddr2, align 1 %12 = insertvalue %variant undef, ptr %taddr2, 0 %13 = insertvalue %variant %12, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %14 = getelementptr inbounds [2 x %variant], ptr %varargslots, i64 0, i64 1 @@ -120,8 +120,8 @@ entry: store i32 %xor, ptr %f4, align 4 %19 = load i32, ptr %f4, align 4 %20 = and i32 1, %19 - %ztrunc5 = trunc i32 %20 to i8 - store i8 %ztrunc5, ptr %taddr6, align 1 + %trunc5 = trunc i32 %20 to i8 + store i8 %trunc5, ptr %taddr6, align 1 %21 = insertvalue %variant undef, ptr %taddr6, 0 %22 = insertvalue %variant %21, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %23 = getelementptr inbounds [2 x %variant], ptr %varargslots4, i64 0, i64 0 @@ -129,8 +129,8 @@ entry: %24 = load i32, ptr %f4, align 4 %lshrl7 = lshr i32 %24, 1 %25 = and i32 1, %lshrl7 - %ztrunc8 = trunc i32 %25 to i8 - store i8 %ztrunc8, ptr %taddr9, align 1 + %trunc8 = trunc i32 %25 to i8 + store i8 %trunc8, ptr %taddr9, align 1 %26 = insertvalue %variant undef, ptr %taddr9, 0 %27 = insertvalue %variant %26, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %28 = getelementptr inbounds [2 x %variant], ptr %varargslots4, i64 0, i64 1 @@ -139,8 +139,8 @@ entry: store i32 3, ptr %f5, align 4 %30 = load i32, ptr %f5, align 4 %31 = and i32 1, %30 - %ztrunc12 = trunc i32 %31 to i8 - store i8 %ztrunc12, ptr %taddr13, align 1 + %trunc12 = trunc i32 %31 to i8 + store i8 %trunc12, ptr %taddr13, align 1 %32 = insertvalue %variant undef, ptr %taddr13, 0 %33 = insertvalue %variant %32, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %34 = getelementptr inbounds [2 x %variant], ptr %varargslots11, i64 0, i64 0 @@ -148,8 +148,8 @@ entry: %35 = load i32, ptr %f5, align 4 %lshrl14 = lshr i32 %35, 1 %36 = and i32 1, %lshrl14 - %ztrunc15 = trunc i32 %36 to i8 - store i8 %ztrunc15, ptr %taddr16, align 1 + %trunc15 = trunc i32 %36 to i8 + store i8 %trunc15, ptr %taddr16, align 1 %37 = insertvalue %variant undef, ptr %taddr16, 0 %38 = insertvalue %variant %37, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %39 = getelementptr inbounds [2 x %variant], ptr %varargslots11, i64 0, i64 1 @@ -161,8 +161,8 @@ entry: store i32 %and17, ptr %f5, align 4 %43 = load i32, ptr %f5, align 4 %44 = and i32 1, %43 - %ztrunc20 = trunc i32 %44 to i8 - store i8 %ztrunc20, ptr %taddr21, align 1 + %trunc20 = trunc i32 %44 to i8 + store i8 %trunc20, ptr %taddr21, align 1 %45 = insertvalue %variant undef, ptr %taddr21, 0 %46 = insertvalue %variant %45, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %47 = getelementptr inbounds [2 x %variant], ptr %varargslots19, i64 0, i64 0 @@ -170,8 +170,8 @@ entry: %48 = load i32, ptr %f5, align 4 %lshrl22 = lshr i32 %48, 1 %49 = and i32 1, %lshrl22 - %ztrunc23 = trunc i32 %49 to i8 - store i8 %ztrunc23, ptr %taddr24, align 1 + %trunc23 = trunc i32 %49 to i8 + store i8 %trunc23, ptr %taddr24, align 1 %50 = insertvalue %variant undef, ptr %taddr24, 0 %51 = insertvalue %variant %50, i64 ptrtoint (ptr @"$ct.bool" to i64), 1 %52 = getelementptr inbounds [2 x %variant], ptr %varargslots19, i64 0, i64 1 diff --git a/test/test_suite/cast/cast_from_ptr.c3t b/test/test_suite/cast/cast_from_ptr.c3t index 523ea2c60..9c692b6ba 100644 --- a/test/test_suite/cast/cast_from_ptr.c3t +++ b/test/test_suite/cast/cast_from_ptr.c3t @@ -18,5 +18,5 @@ fn void tester() store i16 %ptrxi, ptr %y, align 2 %1 = load ptr, ptr %x, align 8 %ptrxi1 = ptrtoint ptr %1 to i16 - %siuiext = sext i16 %ptrxi1 to i64 - store i64 %siuiext, ptr %z, align 8 + %sext = sext i16 %ptrxi1 to i64 + store i64 %sext, ptr %z, align 8 diff --git a/test/test_suite/cast/top_down_casts.c3t b/test/test_suite/cast/top_down_casts.c3t index d1d56226b..015158450 100644 --- a/test/test_suite/cast/top_down_casts.c3t +++ b/test/test_suite/cast/top_down_casts.c3t @@ -27,58 +27,58 @@ entry: store i32 0, ptr %x, align 4 store i32 0, ptr %y, align 4 %0 = load i32, ptr %x, align 4 - %sisiext = sext i32 %0 to i64 + %sext = sext i32 %0 to i64 %1 = load i32, ptr %y, align 4 - %sisiext1 = sext i32 %1 to i64 - %mul = mul i64 %sisiext, %sisiext1 + %sext1 = sext i32 %1 to i64 + %mul = mul i64 %sext, %sext1 store i64 %mul, ptr %z, align 8 %2 = load i32, ptr %x, align 4 - %sisiext2 = sext i32 %2 to i64 + %sext2 = sext i32 %2 to i64 %3 = load i32, ptr %y, align 4 - %sisiext3 = sext i32 %3 to i64 - %sdiv = sdiv i64 %sisiext2, %sisiext3 + %sext3 = sext i32 %3 to i64 + %sdiv = sdiv i64 %sext2, %sext3 store i64 %sdiv, ptr %z, align 8 %4 = load i32, ptr %x, align 4 - %sisiext4 = sext i32 %4 to i64 + %sext4 = sext i32 %4 to i64 %5 = load i32, ptr %y, align 4 - %sisiext5 = sext i32 %5 to i64 - %add = add i64 %sisiext4, %sisiext5 + %sext5 = sext i32 %5 to i64 + %add = add i64 %sext4, %sext5 store i64 %add, ptr %z, align 8 %6 = load i32, ptr %x, align 4 - %sisiext6 = sext i32 %6 to i64 + %sext6 = sext i32 %6 to i64 %7 = load i32, ptr %y, align 4 - %sisiext7 = sext i32 %7 to i64 - %sub = sub i64 %sisiext6, %sisiext7 + %sext7 = sext i32 %7 to i64 + %sub = sub i64 %sext6, %sext7 store i64 %sub, ptr %z, align 8 %8 = load i32, ptr %x, align 4 - %sisiext8 = sext i32 %8 to i64 + %sext8 = sext i32 %8 to i64 %9 = load i32, ptr %y, align 4 - %sisiext9 = sext i32 %9 to i64 - %smod = srem i64 %sisiext8, %sisiext9 + %sext9 = sext i32 %9 to i64 + %smod = srem i64 %sext8, %sext9 store i64 %smod, ptr %z, align 8 %10 = load i32, ptr %x, align 4 - %sisiext10 = sext i32 %10 to i64 + %sext10 = sext i32 %10 to i64 %11 = load i32, ptr %y, align 4 %zext = zext i32 %11 to i64 - %shl = shl i64 %sisiext10, %zext + %shl = shl i64 %sext10, %zext %12 = freeze i64 %shl store i64 %12, ptr %z, align 8 %13 = load i32, ptr %x, align 4 - %sisiext11 = sext i32 %13 to i64 + %sext11 = sext i32 %13 to i64 %14 = load i32, ptr %y, align 4 %zext12 = zext i32 %14 to i64 - %ashr = ashr i64 %sisiext11, %zext12 + %ashr = ashr i64 %sext11, %zext12 %15 = freeze i64 %ashr store i64 %15, ptr %z, align 8 %16 = load i32, ptr %x, align 4 - %sisiext13 = sext i32 %16 to i64 - %bnot = xor i64 %sisiext13, -1 + %sext13 = sext i32 %16 to i64 + %bnot = xor i64 %sext13, -1 store i64 %bnot, ptr %z, align 8 %17 = load i32, ptr %x, align 4 - %sisiext14 = sext i32 %17 to i64 + %sext14 = sext i32 %17 to i64 %18 = load i32, ptr %x, align 4 - %sisiext15 = sext i32 %18 to i64 - %neg = sub i64 0, %sisiext15 + %sext15 = sext i32 %18 to i64 + %neg = sub i64 0, %sext15 store i64 %neg, ptr %z, align 8 store i64 0, ptr %w.f, align 8 store i32 0, ptr %w, align 4 @@ -89,14 +89,14 @@ entry: after_check: ; preds = %entry %20 = load i32, ptr %w, align 4 - %sisiext16 = sext i32 %20 to i64 + %sext16 = sext i32 %20 to i64 br label %phi_block else_block: ; preds = %entry br label %phi_block phi_block: ; preds = %else_block, %after_check - %val = phi i64 [ %sisiext16, %after_check ], [ 1, %else_block ] + %val = phi i64 [ %sext16, %after_check ], [ 1, %else_block ] store i64 %val, ptr %z, align 8 ret void } \ No newline at end of file diff --git a/test/test_suite/clang/2002-01_02.c3t b/test/test_suite/clang/2002-01_02.c3t index a5b594f83..c8006e7ed 100644 --- a/test/test_suite/clang/2002-01_02.c3t +++ b/test/test_suite/clang/2002-01_02.c3t @@ -178,9 +178,9 @@ define ptr @test.rangematch(ptr %0, i32 %1, i32 %2) #0 { entry: %le = icmp sle i32 %2, %1 %3 = call i32 @tolower(i32 %2) - %siuitrunc = trunc i32 %1 to i8 - %uisiext = zext i8 %siuitrunc to i32 - %4 = call i32 @tolower(i32 %uisiext) + %trunc = trunc i32 %1 to i8 + %zext = zext i8 %trunc to i32 + %4 = call i32 @tolower(i32 %zext) %le1 = icmp sle i32 %3, %4 %or = or i1 %le, %le1 br i1 %or, label %if.then, label %if.exit @@ -245,10 +245,10 @@ define i32 @test.testing(ptr %0) #0 { entry: %1 = getelementptr inbounds %Test, ptr %0, i32 0, i32 1 %2 = load i16, ptr %1, align 2 - %sisiext = sext i16 %2 to i32 + %sext = sext i16 %2 to i32 %3 = getelementptr inbounds %Test, ptr %0, i32 0, i32 2 %4 = load i32, ptr %3, align 4 - %add = add i32 %sisiext, %4 + %add = add i32 %sext, %4 ret i32 %add } @@ -261,8 +261,8 @@ entry: %add = add i32 %0, %3 %4 = getelementptr inbounds %Test, ptr %a, i32 0, i32 1 %5 = load i16, ptr %4, align 2 - %sisiext = sext i16 %5 to i32 - %add1 = add i32 %add, %sisiext + %sext = sext i16 %5 to i32 + %add1 = add i32 %add, %sext %6 = getelementptr inbounds %Test, ptr %a, i32 0, i32 2 %7 = load i32, ptr %6, align 4 %add2 = add i32 %add1, %7 @@ -281,10 +281,10 @@ entry: store i32 %3, ptr %ptroffset1, align 8 %4 = getelementptr inbounds %Test, ptr %a, i32 0, i32 1 %5 = load i16, ptr %4, align 2 - %sisiext = sext i16 %5 to i32 + %sext = sext i16 %5 to i32 %6 = getelementptr inbounds %Test, ptr %a, i32 0, i32 2 %7 = load i32, ptr %6, align 4 - %add = add i32 %sisiext, %7 + %add = add i32 %sext, %7 %8 = getelementptr inbounds %Test, ptr %b, i32 0, i32 2 %9 = load i32, ptr %8, align 4 %add2 = add i32 %add, %9 diff --git a/test/test_suite/clang/2002-04.c3t b/test/test_suite/clang/2002-04.c3t index 84c600fa9..59ae0e500 100644 --- a/test/test_suite/clang/2002-04.c3t +++ b/test/test_suite/clang/2002-04.c3t @@ -153,8 +153,8 @@ entry: %8 = load i32, ptr %7, align 4 %9 = getelementptr inbounds %FooSt, ptr %0, i32 0, i32 4 %10 = load i16, ptr %9, align 4 - %sisiext = sext i16 %10 to i32 - %11 = call i32 @testE(i8 zeroext %2, i16 signext %4, i8 zeroext %6, i32 %8, i32 %sisiext, float 0x3FB99999A0000000) + %sext = sext i16 %10 to i32 + %11 = call i32 @testE(i8 zeroext %2, i16 signext %4, i8 zeroext %6, i32 %8, i32 %sext, float 0x3FB99999A0000000) call void @llvm.memcpy.p0.p0.i32(ptr align 8 %indirectarg, ptr align 4 %0, i32 20, i1 false) %12 = call i32 @testF(ptr byval(%FooSt) align 8 %indirectarg, float 0x3FB99999A0000000) call void @llvm.memcpy.p0.p0.i32(ptr align 8 %indirectarg1, ptr align 4 %0, i32 20, i1 false) diff --git a/test/test_suite/clang/2002-07.c3t b/test/test_suite/clang/2002-07.c3t index 256f4e27e..b8bc7035b 100644 --- a/test/test_suite/clang/2002-07.c3t +++ b/test/test_suite/clang/2002-07.c3t @@ -462,10 +462,10 @@ loop.cond: ; preds = %loop.body, %entry loop.body: ; preds = %loop.cond %4 = load i64, ptr %dstp, align 8 - %xiptr = inttoptr i64 %4 to ptr - %ptroffset = getelementptr inbounds i8, ptr %xiptr, i64 0 - %siuitrunc = trunc i32 %1 to i8 - store i8 %siuitrunc, ptr %ptroffset, align 1 + %intptr = inttoptr i64 %4 to ptr + %ptroffset = getelementptr inbounds i8, ptr %intptr, i64 0 + %trunc = trunc i32 %1 to i8 + store i8 %trunc, ptr %ptroffset, align 1 %5 = load i64, ptr %dstp, align 8 %add = add i64 %5, 1 store i64 %add, ptr %dstp, align 8 @@ -553,25 +553,25 @@ entry: define zeroext i8 @foo.ptrFunc2(ptr byval([30 x ptr]) align 8 %0, i32 %1) #0 { entry: - %sisiext = sext i32 %1 to i64 - %2 = getelementptr inbounds [30 x ptr], ptr %0, i64 0, i64 %sisiext + %sext = sext i32 %1 to i64 + %2 = getelementptr inbounds [30 x ptr], ptr %0, i64 0, i64 %sext %3 = load ptr, ptr %2, align 8 %4 = call i32 %3(i32 98) - %siuitrunc = trunc i32 %4 to i8 - ret i8 %siuitrunc + %trunc = trunc i32 %4 to i8 + ret i8 %trunc } define zeroext i8 @foo.smallArgs(i8 zeroext %0, i8 zeroext %1, i8 zeroext %2, i8 zeroext %3) #0 { entry: %4 = call i32 @someFuncA() - %uisiext = zext i8 %0 to i32 - %sub = sub i32 %uisiext, 1 - %siuitrunc = trunc i32 %sub to i8 - %uisiext1 = zext i8 %1 to i32 - %add = add i32 %uisiext1, 1 - %siuitrunc2 = trunc i32 %add to i8 - %uisiext3 = zext i8 %2 to i64 - %5 = call i8 @smallArgs2(i8 zeroext %siuitrunc, i8 zeroext %siuitrunc2, i64 %uisiext3, i8 zeroext %3, i8 zeroext %0) + %zext = zext i8 %0 to i32 + %sub = sub i32 %zext, 1 + %trunc = trunc i32 %sub to i8 + %zext1 = zext i8 %1 to i32 + %add = add i32 %zext1, 1 + %trunc2 = trunc i32 %add to i8 + %zext3 = zext i8 %2 to i64 + %5 = call i8 @smallArgs2(i8 zeroext %trunc, i8 zeroext %trunc2, i64 %zext3, i8 zeroext %3, i8 zeroext %0) ret i8 %5 } @@ -600,15 +600,15 @@ if.exit: ; preds = %if.then, %entry %9 = getelementptr inbounds %Quad, ptr %0, i32 0, i32 1 %10 = getelementptr inbounds %SubStruct, ptr %9, i32 0, i32 1 %11 = load i16, ptr %10, align 2 - %sisiext = sext i16 %11 to i32 - %add = add i32 %sisiext, %1 + %sext = sext i16 %11 to i32 + %add = add i32 %sext, %1 %12 = getelementptr inbounds %Quad, ptr %r, i32 0, i32 4 %13 = load i32, ptr %12, align 4 %add1 = add i32 %add, %13 %14 = getelementptr inbounds %Quad, ptr %0, i32 0, i32 3 %15 = load i8, ptr %14, align 8 - %uisiext = zext i8 %15 to i32 - %sub = sub i32 %add1, %uisiext + %zext = zext i8 %15 to i32 + %sub = sub i32 %add1, %zext ret i32 %sub } @@ -617,11 +617,9 @@ entry: %r = alloca %Quad, align 8 %intbool = icmp ne i32 %1, 0 br i1 %intbool, label %if.then, label %if.exit - if.then: ; preds = %entry call void @llvm.memcpy.p0.p0.i32(ptr align 8 %r, ptr align 8 %0, i32 24, i1 false) br label %if.exit - if.exit: ; preds = %if.then, %entry %2 = getelementptr inbounds %Quad, ptr %0, i32 0, i32 0 %3 = getelementptr inbounds %Quad, ptr %0, i32 0, i32 4 @@ -632,15 +630,15 @@ if.exit: ; preds = %if.then, %entry %5 = getelementptr inbounds %Quad, ptr %0, i32 0, i32 1 %6 = getelementptr inbounds %SubStruct, ptr %5, i32 0, i32 1 %7 = load i16, ptr %6, align 2 - %sisiext = sext i16 %7 to i32 - %add = add i32 %sisiext, %1 + %sext = sext i16 %7 to i32 + %add = add i32 %sext, %1 %8 = getelementptr inbounds %Quad, ptr %r, i32 0, i32 4 %9 = load i32, ptr %8, align 4 %add1 = add i32 %add, %9 %10 = getelementptr inbounds %Quad, ptr %0, i32 0, i32 3 %11 = load i8, ptr %10, align 8 - %uisiext = zext i8 %11 to i32 - %sub = sub i32 %add1, %uisiext + %zext = zext i8 %11 to i32 + %sub = sub i32 %add1, %zext ret i32 %sub } @@ -650,11 +648,9 @@ entry: %fpfpext = fpext float %0 to double %gt = fcmp ogt double %fpfpext, 1.234500e+01 br i1 %gt, label %if.then, label %if.exit - if.then: ; preds = %entry store i32 4, ptr %result, align 4 br label %if.exit - if.exit: ; preds = %if.then, %entry %1 = load i32, ptr %result, align 4 ret i32 %1 @@ -678,10 +674,10 @@ entry: define signext i16 @foo.funFunc(i64 %0, i8 zeroext %1) #0 { entry: - %uisiext = zext i8 %1 to i64 - %add = add i64 %0, %uisiext - %sisitrunc = trunc i64 %add to i16 - ret i16 %sisitrunc + %zext = zext i8 %1 to i64 + %add = add i64 %0, %zext + %trunc = trunc i64 %add to i16 + ret i16 %trunc } define i32 @foo.castTest(i32 %0) #0 { @@ -704,18 +700,15 @@ entry: store i32 %0, ptr %i, align 4 store i32 %1, ptr %j, align 4 br label %loop.cond - loop.cond: ; preds = %loop.body, %entry %2 = load i32, ptr %i, align 4 %neq = icmp ne i32 %2, 20 br i1 %neq, label %loop.body, label %loop.exit - loop.body: ; preds = %loop.cond %3 = load i32, ptr %i, align 4 %add = add i32 %3, 2 store i32 %add, ptr %i, align 4 br label %loop.cond - loop.exit: ; preds = %loop.cond %4 = load i32, ptr %j, align 4 %5 = load i32, ptr %i, align 4 @@ -739,17 +732,15 @@ entry: store i32 0, ptr %result, align 4 store i32 0, ptr %i, align 4 br label %loop.cond - loop.cond: ; preds = %loop.body, %entry %2 = load i32, ptr %i, align 4 %lt = icmp slt i32 %2, %1 br i1 %lt, label %loop.body, label %loop.exit - loop.body: ; preds = %loop.cond %3 = load i32, ptr %result, align 4 %4 = load i32, ptr %i, align 4 - %sisiext = sext i32 %4 to i64 - %ptroffset = getelementptr inbounds i32, ptr %0, i64 %sisiext + %sext = sext i32 %4 to i64 + %ptroffset = getelementptr inbounds i32, ptr %0, i64 %sext %5 = load i32, ptr %ptroffset, align 4 %add = add i32 %3, %5 store i32 %add, ptr %result, align 4 @@ -757,7 +748,6 @@ loop.body: ; preds = %loop.cond %add1 = add i32 %6, 1 store i32 %add1, ptr %i, align 4 br label %loop.cond - loop.exit: ; preds = %loop.cond %7 = load i32, ptr %result, align 4 ret i32 %7 @@ -767,10 +757,10 @@ define i32 @foo.arrayParam(ptr %0) #0 { entry: %ptroffset = getelementptr inbounds i32, ptr %0, i64 50 %1 = load i32, ptr %ptroffset, align 4 - %sisiext = sext i32 %1 to i64 - %xiptr = inttoptr i64 %sisiext to ptr + %sext = sext i32 %1 to i64 + %intptr = inttoptr i64 %sext to ptr %ptroffset1 = getelementptr inbounds i32, ptr %0, i64 50 - %2 = call i32 @ef1(ptr %xiptr, ptr inttoptr (i64 1 to ptr), ptr %ptroffset1) + %2 = call i32 @ef1(ptr %intptr, ptr inttoptr (i64 1 to ptr), ptr %ptroffset1) ret i32 %2 } @@ -781,16 +771,14 @@ entry: store i32 0, ptr %i, align 4 store i32 0, ptr %i, align 4 br label %loop.cond - loop.cond: ; preds = %loop.body, %entry %0 = load i32, ptr %i, align 4 %lt = icmp slt i32 %0, 100 br i1 %lt, label %loop.body, label %loop.exit - loop.body: ; preds = %loop.cond %1 = load i32, ptr %i, align 4 - %sisiext = sext i32 %1 to i64 - %2 = getelementptr inbounds [100 x i32], ptr %a, i64 0, i64 %sisiext + %sext = sext i32 %1 to i64 + %2 = getelementptr inbounds [100 x i32], ptr %a, i64 0, i64 %sext %3 = load i32, ptr %i, align 4 %mul = mul i32 %3, 4 store i32 %mul, ptr %2, align 4 @@ -798,12 +786,11 @@ loop.body: ; preds = %loop.cond %add = add i32 %4, 1 store i32 %add, ptr %i, align 4 br label %loop.cond - loop.exit: ; preds = %loop.cond %5 = getelementptr inbounds [100 x i32], ptr %a, i64 0, i64 0 %6 = load i32, ptr %5, align 4 - %sisiext1 = sext i32 %6 to i64 - %7 = getelementptr inbounds [100 x i32], ptr %a, i64 0, i64 %sisiext1 + %sext1 = sext i32 %6 to i64 + %7 = getelementptr inbounds [100 x i32], ptr %a, i64 0, i64 %sext1 %8 = load i32, ptr %7, align 4 ret i32 %8 } @@ -812,16 +799,14 @@ define i32 @main(i32 %0, ptr %1) #0 { entry: %i = alloca i32, align 4 %2 = call i32 @puts(ptr @.str.10) - %sisitrunc = trunc i32 %0 to i16 - %3 = call i32 @foo.externFunc(i64 -1, ptr null, i16 signext %sisitrunc, i8 zeroext 2) + %trunc = trunc i32 %0 to i16 + %3 = call i32 @foo.externFunc(i64 -1, ptr null, i16 signext %trunc, i8 zeroext 2) store i32 0, ptr %i, align 4 br label %loop.cond - loop.cond: ; preds = %loop.body, %entry %4 = load i32, ptr %i, align 4 %gt = icmp ugt i32 10, %4 br i1 %gt, label %loop.body, label %loop.exit - loop.body: ; preds = %loop.cond %ptroffset = getelementptr inbounds ptr, ptr %1, i64 3 %5 = load ptr, ptr %ptroffset, align 8 @@ -830,7 +815,6 @@ loop.body: ; preds = %loop.cond %add = add i32 %7, 1 store i32 %add, ptr %i, align 4 br label %loop.cond - loop.exit: ; preds = %loop.cond ret i32 0 } @@ -863,7 +847,6 @@ entry: store ptr %0, ptr %s1, align 8 store ptr %1, ptr %s2, align 8 br label %loop.cond - loop.cond: ; preds = %loop.body, %entry %2 = load ptr, ptr %s1, align 8 %ptroffset = getelementptr i8, ptr %2, i8 1 @@ -875,10 +858,8 @@ loop.cond: ; preds = %loop.body, %entry store i8 %4, ptr %2, align 1 %intbool = icmp ne i8 %4, 0 br i1 %intbool, label %loop.body, label %loop.exit - loop.body: ; preds = %loop.cond br label %loop.cond - loop.exit: ; preds = %loop.cond ret void } @@ -890,7 +871,6 @@ entry: store ptr %0, ptr %s1, align 8 store ptr %1, ptr %s2, align 8 br label %loop.cond - loop.cond: ; preds = %loop.body, %entry %2 = load ptr, ptr %s1, align 8 %ptroffset = getelementptr i8, ptr %2, i8 1 @@ -898,16 +878,13 @@ loop.cond: ; preds = %loop.body, %entry %3 = load i8, ptr %2, align 1 %intbool = icmp ne i8 %3, 0 br i1 %intbool, label %loop.body, label %loop.exit - loop.body: ; preds = %loop.cond br label %loop.cond - loop.exit: ; preds = %loop.cond %4 = load ptr, ptr %s1, align 8 %ptroffset1 = getelementptr i8, ptr %4, i8 -1 store ptr %ptroffset1, ptr %s1, align 8 br label %loop.cond2 - loop.cond2: ; preds = %loop.body6, %loop.exit %5 = load ptr, ptr %s1, align 8 %ptroffset3 = getelementptr i8, ptr %5, i8 1 @@ -919,10 +896,8 @@ loop.cond2: ; preds = %loop.body6, %loop.e store i8 %7, ptr %5, align 1 %intbool5 = icmp ne i8 %7, 0 br i1 %intbool5, label %loop.body6, label %loop.exit7 - loop.body6: ; preds = %loop.cond2 br label %loop.cond2 - loop.exit7: ; preds = %loop.cond2 ret void } @@ -934,7 +909,6 @@ entry: store ptr %0, ptr %s1, align 8 store ptr %1, ptr %s2, align 8 br label %loop.cond - loop.cond: ; preds = %loop.body, %entry %2 = load ptr, ptr %s1, align 8 %ptroffset = getelementptr i8, ptr %2, i8 1 @@ -946,51 +920,43 @@ loop.cond: ; preds = %loop.body, %entry %5 = load i8, ptr %4, align 1 %eq = icmp eq i8 %3, %5 br i1 %eq, label %loop.body, label %loop.exit - loop.body: ; preds = %loop.cond br label %loop.cond - loop.exit: ; preds = %loop.cond %6 = load ptr, ptr %s1, align 8 %7 = load i8, ptr %6, align 1 %zext = zext i8 %7 to i32 %eq2 = icmp eq i32 0, %zext br i1 %eq2, label %if.then, label %if.else6 - if.then: ; preds = %loop.exit %8 = load ptr, ptr %s2, align 8 %9 = load i8, ptr %8, align 1 %zext3 = zext i8 %9 to i32 %eq4 = icmp eq i32 0, %zext3 br i1 %eq4, label %if.then5, label %if.else - if.then5: ; preds = %if.then ret i32 0 - if.else: ; preds = %if.then ret i32 -1 - if.else6: ; preds = %loop.exit %10 = load ptr, ptr %s2, align 8 %11 = load i8, ptr %10, align 1 %zext7 = zext i8 %11 to i32 %eq8 = icmp eq i32 0, %zext7 br i1 %eq8, label %if.then9, label %if.else10 - if.then9: ; preds = %if.else6 ret i32 1 - if.else10: ; preds = %if.else6 %12 = load ptr, ptr %s1, align 8 %ptroffset11 = getelementptr i8, ptr %12, i8 -1 store ptr %ptroffset11, ptr %s1, align 8 %13 = load i8, ptr %ptroffset11, align 1 - %uisiext = zext i8 %13 to i32 + %zext12 = zext i8 %13 to i32 %14 = load ptr, ptr %s2, align 8 - %ptroffset12 = getelementptr i8, ptr %14, i8 -1 - store ptr %ptroffset12, ptr %s2, align 8 - %15 = load i8, ptr %ptroffset12, align 1 - %uisiext13 = zext i8 %15 to i32 - %sub = sub i32 %uisiext, %uisiext13 + %ptroffset13 = getelementptr i8, ptr %14, i8 -1 + store ptr %ptroffset13, ptr %s2, align 8 + %15 = load i8, ptr %ptroffset13, align 1 + %zext14 = zext i8 %15 to i32 + %sub = sub i32 %zext12, %zext14 ret i32 %sub } diff --git a/test/test_suite/constants/const_var_copy.c3t b/test/test_suite/constants/const_var_copy.c3t index 739041889..4bf57d2ab 100644 --- a/test/test_suite/constants/const_var_copy.c3t +++ b/test/test_suite/constants/const_var_copy.c3t @@ -18,12 +18,12 @@ define void @foo.test(i32 %0) #0 { entry: %s = alloca i8, align 1 %zd = alloca i32, align 4 - %sisiext = sext i32 %0 to i64 - %1 = getelementptr inbounds [100 x i8], ptr @foo.FOO, i64 0, i64 %sisiext + %sext = sext i32 %0 to i64 + %1 = getelementptr inbounds [100 x i8], ptr @foo.FOO, i64 0, i64 %sext %2 = load i8, ptr %1, align 1 store i8 %2, ptr %s, align 1 - %sisiext1 = sext i32 %0 to i64 - %3 = extractelement <4 x i32> , i64 %sisiext1 + %sext1 = sext i32 %0 to i64 + %3 = extractelement <4 x i32> , i64 %sext1 store i32 %3, ptr %zd, align 4 ret void } diff --git a/test/test_suite/enumerations/enum_cast.c3t b/test/test_suite/enumerations/enum_cast.c3t index f6c9c4a25..cdcb9e417 100644 --- a/test/test_suite/enumerations/enum_cast.c3t +++ b/test/test_suite/enumerations/enum_cast.c3t @@ -66,8 +66,8 @@ entry: %0 = load i8, ptr %x, align 1 store i8 %0, ptr %b2, align 1 %1 = load i8, ptr %x, align 1 - %uisiext = zext i8 %1 to i32 - store i32 %uisiext, ptr %z2, align 4 + %zext = zext i8 %1 to i32 + store i32 %zext, ptr %z2, align 4 store float 0.000000e+00, ptr %d, align 4 store i8 0, ptr %hello, align 1 store i8 1, ptr %xf, align 1 diff --git a/test/test_suite/enumerations/enum_conversions.c3t b/test/test_suite/enumerations/enum_conversions.c3t index 0abc03ebf..2c6521c9c 100644 --- a/test/test_suite/enumerations/enum_conversions.c3t +++ b/test/test_suite/enumerations/enum_conversions.c3t @@ -43,8 +43,8 @@ panic1: ; preds = %checkok br label %checkok2 checkok2: ; preds = %panic1, %checkok - %ztrunc = trunc i32 %0 to i8 - store i8 %ztrunc, ptr %x, align 1 + %trunc = trunc i32 %0 to i8 + store i8 %trunc, ptr %x, align 1 store i64 0, ptr %z, align 8 %3 = load i64, ptr %z, align 8 %lt3 = icmp slt i64 %3, 0 @@ -65,8 +65,8 @@ panic7: ; preds = %checkok5 br label %checkok8 checkok8: ; preds = %panic7, %checkok5 - %ztrunc9 = trunc i64 %3 to i8 - store i8 %ztrunc9, ptr %y, align 1 + %trunc9 = trunc i64 %3 to i8 + store i8 %trunc9, ptr %y, align 1 store i32 256, ptr %a, align 4 %6 = load i32, ptr %a, align 4 %lt10 = icmp slt i32 %6, 0 @@ -87,8 +87,8 @@ panic14: ; preds = %checkok12 br label %checkok15 checkok15: ; preds = %panic14, %checkok12 - %ztrunc16 = trunc i32 %6 to i8 - store i8 %ztrunc16, ptr %y, align 1 + %trunc16 = trunc i32 %6 to i8 + store i8 %trunc16, ptr %y, align 1 store i32 -1, ptr %a, align 4 %9 = load i32, ptr %a, align 4 %lt17 = icmp slt i32 %9, 0 @@ -109,7 +109,7 @@ panic21: ; preds = %checkok19 br label %checkok22 checkok22: ; preds = %panic21, %checkok19 - %ztrunc23 = trunc i32 %9 to i8 - store i8 %ztrunc23, ptr %y, align 1 + %trunc23 = trunc i32 %9 to i8 + store i8 %trunc23, ptr %y, align 1 ret void } diff --git a/test/test_suite/enumerations/enum_values.c3t b/test/test_suite/enumerations/enum_values.c3t index da5b1aa8b..7b5938446 100644 --- a/test/test_suite/enumerations/enum_values.c3t +++ b/test/test_suite/enumerations/enum_values.c3t @@ -32,8 +32,8 @@ entry: store i32 0, ptr %1, align 4 %2 = getelementptr inbounds [2 x i32], ptr %literal, i64 0, i64 1 store i32 1, ptr %2, align 4 - %sisiext = sext i32 %0 to i64 - %3 = getelementptr inbounds [2 x i32], ptr %literal, i64 0, i64 %sisiext + %sext = sext i32 %0 to i64 + %3 = getelementptr inbounds [2 x i32], ptr %literal, i64 0, i64 %sext %4 = load i32, ptr %3, align 4 store i32 %4, ptr %zonk, align 4 ret void diff --git a/test/test_suite/errors/error_regression_2.c3t b/test/test_suite/errors/error_regression_2.c3t index caa7dfa60..2ccdecc7f 100644 --- a/test/test_suite/errors/error_regression_2.c3t +++ b/test/test_suite/errors/error_regression_2.c3t @@ -172,14 +172,14 @@ cond.phi: ; preds = %cond.rhs, %cond.lhs store %"char[]" %val, ptr %title, align 8 %7 = getelementptr inbounds %"char[]", ptr %title, i32 0, i32 1 %8 = load i64, ptr %7, align 8 - %uisitrunc = trunc i64 %8 to i32 + %trunc = trunc i64 %8 to i32 %9 = getelementptr inbounds %"char[]", ptr %title, i32 0, i32 0 %10 = load ptr, ptr %9, align 8 %11 = getelementptr inbounds %Summary, ptr %0, i32 0, i32 1 %12 = load i8, ptr %11, align 8 %13 = trunc i8 %12 to i1 %ternary = select i1 %13, ptr @.str.45, ptr @.str.46 - %14 = call i32 (ptr, ptr, ...) @fprintf(ptr %1, ptr @.str.44, i32 %uisitrunc, ptr %10, ptr %ternary) + %14 = call i32 (ptr, ptr, ...) @fprintf(ptr %1, ptr @.str.44, i32 %trunc, ptr %10, ptr %ternary) ret void } @@ -321,24 +321,24 @@ entry: %literal101 = alloca %Head, align 8 %error_var102 = alloca i64, align 8 %value103 = alloca %"char[]", align 8 - %temp105 = alloca ptr, align 8 - %using106 = alloca ptr, align 8 - %end_padding107 = alloca i64, align 8 - %error_var109 = alloca i64, align 8 - %using110 = alloca ptr, align 8 - %end_padding111 = alloca i64, align 8 - %.anon112 = alloca i64, align 8 - %blockret113 = alloca ptr, align 8 - %retparam114 = alloca ptr, align 8 - %temp127 = alloca ptr, align 8 - %using128 = alloca ptr, align 8 - %end_padding129 = alloca i64, align 8 - %error_var131 = alloca i64, align 8 - %using132 = alloca ptr, align 8 - %end_padding133 = alloca i64, align 8 - %.anon134 = alloca i64, align 8 - %blockret135 = alloca ptr, align 8 - %retparam136 = alloca ptr, align 8 + %temp106 = alloca ptr, align 8 + %using107 = alloca ptr, align 8 + %end_padding108 = alloca i64, align 8 + %error_var110 = alloca i64, align 8 + %using111 = alloca ptr, align 8 + %end_padding112 = alloca i64, align 8 + %.anon113 = alloca i64, align 8 + %blockret114 = alloca ptr, align 8 + %retparam115 = alloca ptr, align 8 + %temp128 = alloca ptr, align 8 + %using129 = alloca ptr, align 8 + %end_padding130 = alloca i64, align 8 + %error_var132 = alloca i64, align 8 + %using133 = alloca ptr, align 8 + %end_padding134 = alloca i64, align 8 + %.anon135 = alloca i64, align 8 + %blockret136 = alloca ptr, align 8 + %retparam137 = alloca ptr, align 8 store ptr %1, ptr %url, align 8 %ptroffset = getelementptr inbounds i64, ptr %url, i64 1 store i64 %2, ptr %ptroffset, align 8 @@ -577,10 +577,10 @@ noerr_block73: ; preds = %if.exit71 if.exit74: ; preds = %if.exit19 %69 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 1 %70 = load i64, ptr %69, align 8 - %uisitrunc = trunc i64 %70 to i32 + %trunc = trunc i64 %70 to i32 %71 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 0 %72 = load ptr, ptr %71, align 8 - %73 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr null, i64 0, ptr @.str.13, i32 %uisitrunc, ptr %72) + %73 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr null, i64 0, ptr @.str.13, i32 %trunc, ptr %72) store i32 %73, ptr %len, align 4 %74 = load ptr, ptr @std.core.mem.thread_allocator, align 8 store ptr %74, ptr %using75, align 8 @@ -594,9 +594,9 @@ if.exit74: ; preds = %if.exit19 store i32 %add81, ptr %.anon80, align 4 %78 = load ptr, ptr %using78, align 8 %79 = load i32, ptr %.anon80, align 4 - %siuiext = sext i32 %79 to i64 + %sext = sext i32 %79 to i64 %80 = load i64, ptr %end_padding79, align 8 - %add84 = add i64 %siuiext, %80 + %add84 = add i64 %sext, %80 %81 = call i64 @std.core.mem.allocator.Allocator.alloc(ptr %retparam83, ptr %78, i64 %add84) #3 %not_err85 = icmp eq i64 %81, 0 %82 = call i1 @llvm.expect.i1(i1 %not_err85, i1 true) @@ -632,141 +632,141 @@ if.then92: ; preds = %noerr_block90 if.exit93: ; preds = %noerr_block90 %87 = load ptr, ptr %str, align 8 %88 = load i32, ptr %len, align 4 - %siuiext94 = sext i32 %88 to i64 - %add95 = add i64 %siuiext94, 1 + %sext94 = sext i32 %88 to i64 + %add95 = add i64 %sext94, 1 %89 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 1 %90 = load i64, ptr %89, align 8 - %uisitrunc96 = trunc i64 %90 to i32 + %trunc96 = trunc i64 %90 to i32 %91 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 0 %92 = load ptr, ptr %91, align 8 - %93 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr %87, i64 %add95, ptr @.str.17, i32 %uisitrunc96, ptr %92) + %93 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr %87, i64 %add95, ptr @.str.17, i32 %trunc96, ptr %92) %94 = getelementptr inbounds %Doc, ptr %literal98, i32 0, i32 0 store ptr null, ptr %literal101, align 8 %95 = getelementptr inbounds %Head, ptr %literal101, i32 0, i32 0 %96 = load ptr, ptr %str, align 8 %97 = load i32, ptr %len, align 4 %sub = sub i32 %97, 1 - %sisiext = sext i32 %sub to i64 - %98 = add i64 %sisiext, 1 + %sext104 = sext i32 %sub to i64 + %98 = add i64 %sext104, 1 %size = sub i64 %98, 0 - %ptroffset104 = getelementptr inbounds i8, ptr %96, i64 0 - %99 = insertvalue %"char[]" undef, ptr %ptroffset104, 0 + %ptroffset105 = getelementptr inbounds i8, ptr %96, i64 0 + %99 = insertvalue %"char[]" undef, ptr %ptroffset105, 0 %100 = insertvalue %"char[]" %99, i64 %size, 1 store %"char[]" %100, ptr %value103, align 8 %101 = load ptr, ptr @std.core.mem.thread_allocator, align 8 - store ptr %101, ptr %using106, align 8 - store i64 0, ptr %end_padding107, align 8 - %102 = load ptr, ptr %using106, align 8 - store ptr %102, ptr %using110, align 8 - %103 = load i64, ptr %end_padding107, align 8 - store i64 %103, ptr %end_padding111, align 8 - store i64 16, ptr %.anon112, align 8 - %104 = load ptr, ptr %using110, align 8 - %105 = load i64, ptr %.anon112, align 8 - %106 = load i64, ptr %end_padding111, align 8 - %add115 = add i64 %105, %106 - %107 = call i64 @std.core.mem.allocator.Allocator.alloc(ptr %retparam114, ptr %104, i64 %add115) #3 - %not_err116 = icmp eq i64 %107, 0 - %108 = call i1 @llvm.expect.i1(i1 %not_err116, i1 true) - br i1 %108, label %after_check118, label %assign_optional117 + store ptr %101, ptr %using107, align 8 + store i64 0, ptr %end_padding108, align 8 + %102 = load ptr, ptr %using107, align 8 + store ptr %102, ptr %using111, align 8 + %103 = load i64, ptr %end_padding108, align 8 + store i64 %103, ptr %end_padding112, align 8 + store i64 16, ptr %.anon113, align 8 + %104 = load ptr, ptr %using111, align 8 + %105 = load i64, ptr %.anon113, align 8 + %106 = load i64, ptr %end_padding112, align 8 + %add116 = add i64 %105, %106 + %107 = call i64 @std.core.mem.allocator.Allocator.alloc(ptr %retparam115, ptr %104, i64 %add116) #3 + %not_err117 = icmp eq i64 %107, 0 + %108 = call i1 @llvm.expect.i1(i1 %not_err117, i1 true) + br i1 %108, label %after_check119, label %assign_optional118 -assign_optional117: ; preds = %if.exit93 - store i64 %107, ptr %error_var109, align 8 - br label %panic_block120 +assign_optional118: ; preds = %if.exit93 + store i64 %107, ptr %error_var110, align 8 + br label %panic_block121 -after_check118: ; preds = %if.exit93 - %109 = load ptr, ptr %retparam114, align 8 - store ptr %109, ptr %blockret113, align 8 - br label %expr_block.exit119 +after_check119: ; preds = %if.exit93 + %109 = load ptr, ptr %retparam115, align 8 + store ptr %109, ptr %blockret114, align 8 + br label %expr_block.exit120 -expr_block.exit119: ; preds = %after_check118 - %110 = load ptr, ptr %blockret113, align 8 - br label %noerr_block121 +expr_block.exit120: ; preds = %after_check119 + %110 = load ptr, ptr %blockret114, align 8 + br label %noerr_block122 -panic_block120: ; preds = %assign_optional117 +panic_block121: ; preds = %assign_optional118 %111 = load ptr, ptr @std.core.builtin.panic, align 8 call void %111(ptr @.panic_msg.18, i64 27, ptr @.file.19, i64 6, ptr @.func.20 unreachable -noerr_block121: ; preds = %expr_block.exit119 - store ptr %110, ptr %temp105, align 8 - %112 = load ptr, ptr %temp105, align 8 - %not122 = icmp eq ptr %112, null - br i1 %not122, label %if.then123, label %if.exit124 +noerr_block122: ; preds = %expr_block.exit120 + store ptr %110, ptr %temp106, align 8 + %112 = load ptr, ptr %temp106, align 8 + %not123 = icmp eq ptr %112, null + br i1 %not123, label %if.then124, label %if.exit125 -if.then123: ; preds = %noerr_block121 +if.then124: ; preds = %noerr_block122 store i64 ptrtoint (ptr @"test.ReadError$OUT_OF_MEMORY" to i64), ptr %error_var102, align 8 - br label %guard_block125 + br label %guard_block126 -if.exit124: ; preds = %noerr_block121 - %113 = load ptr, ptr %temp105, align 8 +if.exit125: ; preds = %noerr_block122 + %113 = load ptr, ptr %temp106, align 8 call void @llvm.memcpy.p0.p0.i32(ptr align 8 %113, ptr align 8 %value103, i32 16, i1 false) - br label %noerr_block126 + br label %noerr_block127 -guard_block125: ; preds = %if.then123 +guard_block126: ; preds = %if.then124 %114 = load i64, ptr %error_var102, align 8 ret i64 %114 -noerr_block126: ; preds = %if.exit124 - %115 = load ptr, ptr %temp105, align 8 +noerr_block127: ; preds = %if.exit125 + %115 = load ptr, ptr %temp106, align 8 store ptr %115, ptr %95, align 8 call void @llvm.memcpy.p0.p0.i32(ptr align 8 %value100, ptr align 8 %literal101, i32 8, i1 false) %116 = load ptr, ptr @std.core.mem.thread_allocator, align 8 - store ptr %116, ptr %using128, align 8 - store i64 0, ptr %end_padding129, align 8 - %117 = load ptr, ptr %using128, align 8 - store ptr %117, ptr %using132, align 8 - %118 = load i64, ptr %end_padding129, align 8 - store i64 %118, ptr %end_padding133, align 8 - store i64 8, ptr %.anon134, align 8 - %119 = load ptr, ptr %using132, align 8 - %120 = load i64, ptr %.anon134, align 8 - %121 = load i64, ptr %end_padding133, align 8 - %add137 = add i64 %120, %121 - %122 = call i64 @std.core.mem.allocator.Allocator.alloc(ptr %retparam136, ptr %119, i64 %add137) #3 - %not_err138 = icmp eq i64 %122, 0 - %123 = call i1 @llvm.expect.i1(i1 %not_err138, i1 true) - br i1 %123, label %after_check140, label %assign_optional139 + store ptr %116, ptr %using129, align 8 + store i64 0, ptr %end_padding130, align 8 + %117 = load ptr, ptr %using129, align 8 + store ptr %117, ptr %using133, align 8 + %118 = load i64, ptr %end_padding130, align 8 + store i64 %118, ptr %end_padding134, align 8 + store i64 8, ptr %.anon135, align 8 + %119 = load ptr, ptr %using133, align 8 + %120 = load i64, ptr %.anon135, align 8 + %121 = load i64, ptr %end_padding134, align 8 + %add138 = add i64 %120, %121 + %122 = call i64 @std.core.mem.allocator.Allocator.alloc(ptr %retparam137, ptr %119, i64 %add138) #3 + %not_err139 = icmp eq i64 %122, 0 + %123 = call i1 @llvm.expect.i1(i1 %not_err139, i1 true) + br i1 %123, label %after_check141, label %assign_optional140 -assign_optional139: ; preds = %noerr_block126 - store i64 %122, ptr %error_var131, align 8 - br label %panic_block142 +assign_optional140: ; preds = %noerr_block127 + store i64 %122, ptr %error_var132, align 8 + br label %panic_block143 -after_check140: ; preds = %noerr_block126 - %124 = load ptr, ptr %retparam136, align 8 - store ptr %124, ptr %blockret135, align 8 - br label %expr_block.exit141 +after_check141: ; preds = %noerr_block127 + %124 = load ptr, ptr %retparam137, align 8 + store ptr %124, ptr %blockret136, align 8 + br label %expr_block.exit142 -expr_block.exit141: ; preds = %after_check140 - %125 = load ptr, ptr %blockret135, align 8 - br label %noerr_block143 +expr_block.exit142: ; preds = %after_check141 + %125 = load ptr, ptr %blockret136, align 8 + br label %noerr_block144 -panic_block142: ; preds = %assign_optional139 +panic_block143: ; preds = %assign_optional140 %126 = load ptr, ptr @std.core.builtin.panic, align 8 call void %126(ptr @.panic_msg.21, i64 27, ptr @.file.22, i64 6, ptr @.func.23 unreachable -noerr_block143: ; preds = %expr_block.exit141 - store ptr %125, ptr %temp127, align 8 - %127 = load ptr, ptr %temp127, align 8 - %not144 = icmp eq ptr %127, null - br i1 %not144, label %if.then145, label %if.exit146 +noerr_block144: ; preds = %expr_block.exit142 + store ptr %125, ptr %temp128, align 8 + %127 = load ptr, ptr %temp128, align 8 + %not145 = icmp eq ptr %127, null + br i1 %not145, label %if.then146, label %if.exit147 -if.then145: ; preds = %noerr_block143 +if.then146: ; preds = %noerr_block144 store i64 ptrtoint (ptr @"test.ReadError$OUT_OF_MEMORY" to i64), ptr %error_var99, align 8 - br label %guard_block147 + br label %guard_block148 -if.exit146: ; preds = %noerr_block143 - %128 = load ptr, ptr %temp127, align 8 +if.exit147: ; preds = %noerr_block144 + %128 = load ptr, ptr %temp128, align 8 call void @llvm.memcpy.p0.p0.i32(ptr align 8 %128, ptr align 8 %value100, i32 8, i1 false) - br label %noerr_block148 + br label %noerr_block149 -guard_block147: ; preds = %if.then145 +guard_block148: ; preds = %if.then146 %129 = load i64, ptr %error_var99, align 8 ret i64 %129 -noerr_block148: ; preds = %if.exit146 - %130 = load ptr, ptr %temp127, align 8 +noerr_block149: ; preds = %if.exit147 + %130 = load ptr, ptr %temp128, align 8 store ptr %130, ptr %94, align 8 call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %literal98, i32 8, i1 false) ret i64 0 @@ -1023,10 +1023,10 @@ loop.body: ; preds = %loop.cond call void @llvm.memcpy.p0.p0.i32(ptr align 8 %url, ptr align 8 %ptroffset, i32 16, i1 false) %14 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 1 %15 = load i64, ptr %14, align 8 - %uisitrunc = trunc i64 %15 to i32 + %trunc = trunc i64 %15 to i32 %16 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 0 %17 = load ptr, ptr %16, align 8 - %18 = call i32 (ptr, ...) @printf(ptr @.str.35, i32 %uisitrunc, ptr %17) + %18 = call i32 (ptr, ...) @printf(ptr @.str.35, i32 %trunc, ptr %17) %19 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 0 %lo = load ptr, ptr %19, align 8 %20 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 1 @@ -1057,10 +1057,10 @@ cond.phi: ; preds = %cond.rhs, %cond.lhs store %"char[]" %val, ptr %title_sure, align 8 %30 = getelementptr inbounds %"char[]", ptr %title_sure, i32 0, i32 1 %31 = load i64, ptr %30, align 8 - %uisitrunc2 = trunc i64 %31 to i32 + %trunc2 = trunc i64 %31 to i32 %32 = getelementptr inbounds %"char[]", ptr %title_sure, i32 0, i32 0 %33 = load ptr, ptr %32, align 8 - %34 = call i32 (ptr, ...) @printf(ptr @.str.39, i32 %uisitrunc2, ptr %33) + %34 = call i32 (ptr, ...) @printf(ptr @.str.39, i32 %trunc2, ptr %33) %35 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 0 %lo3 = load ptr, ptr %35, align 8 %36 = getelementptr inbounds %"char[]", ptr %url, i32 0, i32 1 diff --git a/test/test_suite/expressions/casts/cast_expr.c3t b/test/test_suite/expressions/casts/cast_expr.c3t index 07b842ad2..0a476eea0 100644 --- a/test/test_suite/expressions/casts/cast_expr.c3t +++ b/test/test_suite/expressions/casts/cast_expr.c3t @@ -21,7 +21,7 @@ define i32 @main store i32 20, ptr %b %2 = load i32, ptr %a trunc i32 %2 to i8 - sext i8 %sisitrunc to i32 - store i32 %sisiext, ptr %c + sext i8 %trunc to i32 + store i32 %sext, ptr %c ret i32 0 } diff --git a/test/test_suite/expressions/check_implict_conversion_signed_unsigned.c3t b/test/test_suite/expressions/check_implict_conversion_signed_unsigned.c3t index ca0b4200f..c10fef9c5 100644 --- a/test/test_suite/expressions/check_implict_conversion_signed_unsigned.c3t +++ b/test/test_suite/expressions/check_implict_conversion_signed_unsigned.c3t @@ -17,7 +17,7 @@ entry: store i64 3, ptr %b, align 8 %0 = load i64, ptr %b, align 8 %1 = load i32, ptr %a, align 4 - %sisiext = sext i32 %1 to i64 - %sub = sub i64 %0, %sisiext + %sext = sext i32 %1 to i64 + %sub = sub i64 %0, %sext ret i32 1 } \ No newline at end of file diff --git a/test/test_suite/functions/test_regression.c3t b/test/test_suite/functions/test_regression.c3t index d8a1a423f..d18a90aec 100644 --- a/test/test_suite/functions/test_regression.c3t +++ b/test/test_suite/functions/test_regression.c3t @@ -379,10 +379,10 @@ entry: loop.cond: ; preds = %loop.body, %entry %2 = load i32, ptr %i, align 4 - %sisiext = sext i32 %2 to i64 + %sext = sext i32 %2 to i64 %3 = getelementptr inbounds %"int[]", ptr %x, i32 0, i32 1 %4 = load i64, ptr %3, align 8 - %lt = icmp slt i64 %sisiext, %4 + %lt = icmp slt i64 %sext, %4 %check = icmp slt i64 %4, 0 %siui-lt = or i1 %check, %lt br i1 %siui-lt, label %loop.body, label %loop.exit @@ -392,8 +392,8 @@ loop.body: ; preds = %loop.cond %6 = getelementptr inbounds %"int[]", ptr %x, i32 0, i32 0 %7 = load ptr, ptr %6, align 8 %8 = load i32, ptr %i, align 4 - %sisiext1 = sext i32 %8 to i64 - %ptroffset2 = getelementptr inbounds i32, ptr %7, i64 %sisiext1 + %sext1 = sext i32 %8 to i64 + %ptroffset2 = getelementptr inbounds i32, ptr %7, i64 %sext1 %9 = load i32, ptr %ptroffset2, align 4 %add = add i32 %5, %9 store i32 %add, ptr %sum, align 4 @@ -440,15 +440,15 @@ entry: loop.cond: ; preds = %loop.body, %entry %3 = load i32, ptr %i, align 4 %4 = call i64 @"std.collections.linkedlist$int$.LinkedList.len"(ptr %list) #3 - %uisitrunc = trunc i64 %4 to i32 - %lt = icmp slt i32 %3, %uisitrunc + %trunc = trunc i64 %4 to i32 + %lt = icmp slt i32 %3, %trunc br i1 %lt, label %loop.body, label %loop.exit loop.body: ; preds = %loop.cond %5 = load i32, ptr %i, align 4 %6 = load i32, ptr %i, align 4 - %siuiext = sext i32 %6 to i64 - %7 = call i32 @"std.collections.linkedlist$int$.LinkedList.get"(ptr %list, i64 %siuiext) + %sext = sext i32 %6 to i64 + %7 = call i32 @"std.collections.linkedlist$int$.LinkedList.get"(ptr %list, i64 %sext) %8 = call i32 (ptr, ...) @printf(ptr @.str.2, i32 %5, i32 %7) %9 = load i32, ptr %i, align 4 %add = add i32 %9, 1 @@ -472,15 +472,15 @@ loop.exit: ; preds = %loop.cond loop.cond2: ; preds = %loop.body5, %loop.exit %12 = load i32, ptr %i1, align 4 %13 = call i64 @"std.collections.list$int$.List.len"(ptr %array) - %uisitrunc3 = trunc i64 %13 to i32 - %lt4 = icmp slt i32 %12, %uisitrunc3 + %trunc3 = trunc i64 %13 to i32 + %lt4 = icmp slt i32 %12, %trunc3 br i1 %lt4, label %loop.body5, label %loop.exit8 loop.body5: ; preds = %loop.cond2 %14 = load i32, ptr %i1, align 4 %15 = load i32, ptr %i1, align 4 - %siuiext6 = sext i32 %15 to i64 - %16 = call i32 @"std.collections.list$int$.List.get"(ptr %array, i64 %siuiext6) + %sext6 = sext i32 %15 to i64 + %16 = call i32 @"std.collections.list$int$.List.get"(ptr %array, i64 %sext6) %17 = call i32 (ptr, ...) @printf(ptr @.str.5, i32 %14, i32 %16) %18 = load i32, ptr %i1, align 4 %add7 = add i32 %18, 1 diff --git a/test/test_suite/functions/test_regression_mingw.c3t b/test/test_suite/functions/test_regression_mingw.c3t index 47818e0b8..9ca782ac9 100644 --- a/test/test_suite/functions/test_regression_mingw.c3t +++ b/test/test_suite/functions/test_regression_mingw.c3t @@ -416,10 +416,10 @@ entry: loop.cond: ; preds = %loop.body, %entry %1 = load i32, ptr %i, align 4 - %sisiext = sext i32 %1 to i64 + %sext = sext i32 %1 to i64 %2 = getelementptr inbounds %"int[]", ptr %0, i32 0, i32 1 %3 = load i64, ptr %2, align 8 - %lt = icmp slt i64 %sisiext, %3 + %lt = icmp slt i64 %sext, %3 %check = icmp slt i64 %3, 0 %siui-lt = or i1 %check, %lt br i1 %siui-lt, label %loop.body, label %loop.exit @@ -429,8 +429,8 @@ loop.body: ; preds = %loop.cond %5 = getelementptr inbounds %"int[]", ptr %0, i32 0, i32 0 %6 = load ptr, ptr %5, align 8 %7 = load i32, ptr %i, align 4 - %sisiext1 = sext i32 %7 to i64 - %ptroffset = getelementptr inbounds i32, ptr %6, i64 %sisiext1 + %sext1 = sext i32 %7 to i64 + %ptroffset = getelementptr inbounds i32, ptr %6, i64 %sext1 %8 = load i32, ptr %ptroffset, align 4 %add = add i32 %4, %8 store i32 %add, ptr %sum, align 4 @@ -483,15 +483,15 @@ entry: loop.cond: ; preds = %loop.body, %entry %3 = load i32, ptr %i, align 4 %4 = call i64 @"std.collections.linkedlist$int$.LinkedList.len"(ptr %list) #3 - %uisitrunc = trunc i64 %4 to i32 - %lt = icmp slt i32 %3, %uisitrunc + %trunc = trunc i64 %4 to i32 + %lt = icmp slt i32 %3, %trunc br i1 %lt, label %loop.body, label %loop.exit loop.body: ; preds = %loop.cond %5 = load i32, ptr %i, align 4 %6 = load i32, ptr %i, align 4 - %siuiext = sext i32 %6 to i64 - %7 = call i32 @"std.collections.linkedlist$int$.LinkedList.get"(ptr %list, i64 %siuiext) + %sext = sext i32 %6 to i64 + %7 = call i32 @"std.collections.linkedlist$int$.LinkedList.get"(ptr %list, i64 %sext) %8 = call i32 (ptr, ...) @printf(ptr @.str.2, i32 %5, i32 %7) %9 = load i32, ptr %i, align 4 %add = add i32 %9, 1 @@ -515,15 +515,15 @@ loop.exit: ; preds = %loop.cond loop.cond2: ; preds = %loop.body5, %loop.exit %12 = load i32, ptr %i1, align 4 %13 = call i64 @"std.collections.list$int$.List.len"(ptr %array) - %uisitrunc3 = trunc i64 %13 to i32 - %lt4 = icmp slt i32 %12, %uisitrunc3 + %trunc3 = trunc i64 %13 to i32 + %lt4 = icmp slt i32 %12, %trunc3 br i1 %lt4, label %loop.body5, label %loop.exit8 loop.body5: ; preds = %loop.cond2 %14 = load i32, ptr %i1, align 4 %15 = load i32, ptr %i1, align 4 - %siuiext6 = sext i32 %15 to i64 - %16 = call i32 @"std.collections.list$int$.List.get"(ptr %array, i64 %siuiext6) + %sext6 = sext i32 %15 to i64 + %16 = call i32 @"std.collections.list$int$.List.get"(ptr %array, i64 %sext6) %17 = call i32 (ptr, ...) @printf(ptr @.str.5, i32 %14, i32 %16) %18 = load i32, ptr %i1, align 4 %add7 = add i32 %18, 1 diff --git a/test/test_suite/functions/varargs.c3t b/test/test_suite/functions/varargs.c3t index 0db8893de..1aefc9424 100644 --- a/test/test_suite/functions/varargs.c3t +++ b/test/test_suite/functions/varargs.c3t @@ -33,8 +33,8 @@ entry: %boolsi = zext i1 %1 to i32 call void (ptr, ...) @printf(ptr @.str.3, i32 %boolsi) %2 = load i8, ptr %x1, align 1 - %sisiext = sext i8 %2 to i32 - call void (ptr, ...) @printf(ptr @.str.4, i32 %sisiext) + %sext = sext i8 %2 to i32 + call void (ptr, ...) @printf(ptr @.str.4, i32 %sext) %3 = load float, ptr %z1, align 4 %fpfpext = fpext float %3 to double call void (ptr, ...) @printf(ptr @.str.5, double %fpfpext) diff --git a/test/test_suite/functions/varargs_followed_by_named.c3t b/test/test_suite/functions/varargs_followed_by_named.c3t index 2516083b7..814bc700b 100644 --- a/test/test_suite/functions/varargs_followed_by_named.c3t +++ b/test/test_suite/functions/varargs_followed_by_named.c3t @@ -30,12 +30,12 @@ entry: store i64 %2, ptr %ptroffset, align 8 %4 = getelementptr inbounds %"int[]", ptr %y, i32 0, i32 1 %5 = load i64, ptr %4, align 8 - %uisitrunc = trunc i64 %5 to i32 + %trunc = trunc i64 %5 to i32 %6 = getelementptr inbounds %"int[]", ptr %y, i32 0, i32 0 %7 = load ptr, ptr %6, align 8 %ptroffset1 = getelementptr inbounds i32, ptr %7, i64 0 %8 = load i32, ptr %ptroffset1, align 4 - call void (ptr, ...) @printf(ptr @.str, i32 %0, i32 %uisitrunc, i32 %3, i32 %8) + call void (ptr, ...) @printf(ptr @.str, i32 %0, i32 %trunc, i32 %3, i32 %8) ret void } @@ -48,8 +48,8 @@ entry: store i64 %2, ptr %ptroffset, align 8 %4 = getelementptr inbounds %"variant[]", ptr %y, i32 0, i32 1 %5 = load i64, ptr %4, align 8 - %uisitrunc = trunc i64 %5 to i32 - call void (ptr, ...) @printf(ptr @.str.1, i32 %0, i32 %uisitrunc, i32 %3) + %trunc = trunc i64 %5 to i32 + call void (ptr, ...) @printf(ptr @.str.1, i32 %0, i32 %trunc, i32 %3) ret void } diff --git a/test/test_suite/initializer_lists/fasta.c3t b/test/test_suite/initializer_lists/fasta.c3t index 866227e09..15bddb695 100644 --- a/test/test_suite/initializer_lists/fasta.c3t +++ b/test/test_suite/initializer_lists/fasta.c3t @@ -179,13 +179,13 @@ loop.body: ; preds = %loop.cond %6 = getelementptr inbounds %"char[]", ptr %seq, i32 0, i32 0 %7 = load ptr, ptr %6, align 8 %8 = load i32, ptr %i, align 4 - %sisiext = sext i32 %8 to i64 + %sext = sext i32 %8 to i64 %9 = load i64, ptr %len, align 8 - %smod = srem i64 %sisiext, %9 + %smod = srem i64 %sext, %9 %ptroffset1 = getelementptr inbounds i8, ptr %7, i64 %smod %10 = load i8, ptr %ptroffset1, align 1 - %uisiext = zext i8 %10 to i32 - call void @putchar(i32 %uisiext) + %zext = zext i8 %10 to i32 + call void @putchar(i32 %zext) %11 = load i32, ptr %i, align 4 %smod2 = srem i32 %11, 60 %eq = icmp eq i32 %smod2, 59 @@ -238,8 +238,8 @@ entry: call void @llvm.assume(i1 %eq) %9 = getelementptr inbounds %"double[]", ptr %probability, i32 0, i32 1 %10 = load i64, ptr %9, align 8 - %uisitrunc = trunc i64 %10 to i32 - store i32 %uisitrunc, ptr %len, align 4 + %trunc = trunc i64 %10 to i32 + store i32 %trunc, ptr %len, align 4 store i32 0, ptr %i, align 4 br label %loop.cond @@ -267,8 +267,8 @@ loop.body4: ; preds = %loop.cond2 %16 = getelementptr inbounds %"double[]", ptr %probability, i32 0, i32 0 %17 = load ptr, ptr %16, align 8 %18 = load i32, ptr %j, align 4 - %sisiext = sext i32 %18 to i64 - %ptroffset5 = getelementptr inbounds double, ptr %17, i64 %sisiext + %sext = sext i32 %18 to i64 + %ptroffset5 = getelementptr inbounds double, ptr %17, i64 %sext %19 = load double, ptr %ptroffset5, align 8 %fsub = fsub double %15, %19 store double %fsub, ptr %v, align 8 @@ -289,11 +289,11 @@ loop.exit: ; preds = %if.then, %loop.cond %22 = getelementptr inbounds %"char[]", ptr %symb, i32 0, i32 0 %23 = load ptr, ptr %22, align 8 %24 = load i32, ptr %j, align 4 - %sisiext7 = sext i32 %24 to i64 - %ptroffset8 = getelementptr inbounds i8, ptr %23, i64 %sisiext7 + %sext7 = sext i32 %24 to i64 + %ptroffset8 = getelementptr inbounds i8, ptr %23, i64 %sext7 %25 = load i8, ptr %ptroffset8, align 1 - %uisiext = zext i8 %25 to i32 - call void @putchar(i32 %uisiext) + %zext = zext i8 %25 to i32 + call void @putchar(i32 %zext) %26 = load i32, ptr %i, align 4 %smod = srem i32 %26, 60 %eq9 = icmp eq i32 %smod, 59 diff --git a/test/test_suite/initializer_lists/subarrays.c3t b/test/test_suite/initializer_lists/subarrays.c3t index fb645c626..6c54c6de0 100644 --- a/test/test_suite/initializer_lists/subarrays.c3t +++ b/test/test_suite/initializer_lists/subarrays.c3t @@ -119,12 +119,12 @@ entry: %16 = call i64 @std.io.File.printn(ptr %retparam, ptr %14, ptr %15, i64 6) %17 = getelementptr inbounds %"int[]", ptr %x, i32 0, i32 1 %18 = load i64, ptr %17, align 8 - %uisitrunc = trunc i64 %18 to i32 + %trunc = trunc i64 %18 to i32 %19 = getelementptr inbounds %"int[]", ptr %x, i32 0, i32 0 %20 = load ptr, ptr %19, align 8 %ptroffset4 = getelementptr inbounds i32, ptr %20, i64 1 %21 = load i32, ptr %ptroffset4, align 4 - %22 = call i32 (ptr, ...) @printf(ptr @.str.6, i32 %uisitrunc, i32 %21) + %22 = call i32 (ptr, ...) @printf(ptr @.str.6, i32 %trunc, i32 %21) %23 = load ptr, ptr %y, align 8 %ptroffset5 = getelementptr inbounds i32, ptr %23, i64 1 %24 = load i32, ptr %ptroffset5, align 4 diff --git a/test/test_suite/statements/custom_foreach_with_ref.c3t b/test/test_suite/statements/custom_foreach_with_ref.c3t index bd2a60f26..ee211b9a6 100644 --- a/test/test_suite/statements/custom_foreach_with_ref.c3t +++ b/test/test_suite/statements/custom_foreach_with_ref.c3t @@ -181,20 +181,20 @@ entry: store i32 0, ptr %a, align 4 %0 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %1 = load i32, ptr %a, align 4 - %sisiext = sext i32 %1 to i64 - %2 = getelementptr inbounds [3 x i32], ptr %0, i64 0, i64 %sisiext + %sext = sext i32 %1 to i64 + %2 = getelementptr inbounds [3 x i32], ptr %0, i64 0, i64 %sext %3 = load i32, ptr %2, align 4 store i32 1, ptr %a1, align 4 %4 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %5 = load i32, ptr %a1, align 4 - %sisiext2 = sext i32 %5 to i64 - %6 = getelementptr inbounds [3 x i32], ptr %4, i64 0, i64 %sisiext2 + %sext2 = sext i32 %5 to i64 + %6 = getelementptr inbounds [3 x i32], ptr %4, i64 0, i64 %sext2 %7 = load i32, ptr %6, align 4 store i32 2, ptr %a3, align 4 %8 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %9 = load i32, ptr %a3, align 4 - %sisiext4 = sext i32 %9 to i64 - %10 = getelementptr inbounds [3 x i32], ptr %8, i64 0, i64 %sisiext4 + %sext4 = sext i32 %9 to i64 + %10 = getelementptr inbounds [3 x i32], ptr %8, i64 0, i64 %sext4 %11 = load i32, ptr %10, align 4 call void (ptr, ...) @printf(ptr @.str.2, i32 %3, i32 %7, i32 %11) %12 = call ptr @foo.call(ptr %x) @@ -217,8 +217,8 @@ loop.body: ; preds = %loop.cond store i32 %17, ptr %a7, align 4 %18 = getelementptr inbounds %Foo, ptr %16, i32 0, i32 0 %19 = load i32, ptr %a7, align 4 - %sisiext8 = sext i32 %19 to i64 - %20 = getelementptr inbounds [3 x i32], ptr %18, i64 0, i64 %sisiext8 + %sext8 = sext i32 %19 to i64 + %20 = getelementptr inbounds [3 x i32], ptr %18, i64 0, i64 %sext8 %21 = load i32, ptr %20, align 4 store i32 %21, ptr %y, align 4 %22 = load i32, ptr %i, align 4 @@ -247,8 +247,8 @@ loop.body13: ; preds = %loop.cond11 store i32 %28, ptr %a16, align 4 %29 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %30 = load i32, ptr %a16, align 4 - %sisiext17 = sext i32 %30 to i64 - %31 = getelementptr inbounds [3 x i32], ptr %29, i64 0, i64 %sisiext17 + %sext17 = sext i32 %30 to i64 + %31 = getelementptr inbounds [3 x i32], ptr %29, i64 0, i64 %sext17 store ptr %31, ptr %y15, align 8 %32 = load ptr, ptr %y15, align 8 %33 = load i32, ptr %32, align 4 @@ -281,8 +281,8 @@ loop.body25: ; preds = %loop.cond23 store i32 %41, ptr %a28, align 4 %42 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %43 = load i32, ptr %a28, align 4 - %sisiext29 = sext i32 %43 to i64 - %44 = getelementptr inbounds [3 x i32], ptr %42, i64 0, i64 %sisiext29 + %sext29 = sext i32 %43 to i64 + %44 = getelementptr inbounds [3 x i32], ptr %42, i64 0, i64 %sext29 %45 = load i32, ptr %44, align 4 store i32 %45, ptr %y27, align 4 %46 = load i32, ptr %i26, align 4 @@ -311,8 +311,8 @@ loop.body36: ; preds = %loop.cond34 store i32 %52, ptr %a39, align 4 %53 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %54 = load i32, ptr %a39, align 4 - %sisiext40 = sext i32 %54 to i64 - %55 = getelementptr inbounds [3 x i32], ptr %53, i64 0, i64 %sisiext40 + %sext40 = sext i32 %54 to i64 + %55 = getelementptr inbounds [3 x i32], ptr %53, i64 0, i64 %sext40 %56 = load i32, ptr %55, align 4 store i32 %56, ptr %y38, align 4 %57 = load i32, ptr %i37, align 4 @@ -341,8 +341,8 @@ loop.body47: ; preds = %loop.cond45 store i32 %63, ptr %a50, align 4 %64 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %65 = load i32, ptr %a50, align 4 - %sisiext51 = sext i32 %65 to i64 - %66 = getelementptr inbounds [3 x i32], ptr %64, i64 0, i64 %sisiext51 + %sext51 = sext i32 %65 to i64 + %66 = getelementptr inbounds [3 x i32], ptr %64, i64 0, i64 %sext51 %67 = load i32, ptr %66, align 4 store i32 %67, ptr %y49, align 4 %68 = load i32, ptr %i48, align 4 @@ -440,21 +440,21 @@ loop.exit81: ; preds = %loop.cond75 store i32 0, ptr %a82, align 4 %98 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %99 = load i32, ptr %a82, align 4 - %sisiext83 = sext i32 %99 to i64 - %100 = getelementptr inbounds [3 x i32], ptr %98, i64 0, i64 %sisiext83 + %sext83 = sext i32 %99 to i64 + %100 = getelementptr inbounds [3 x i32], ptr %98, i64 0, i64 %sext83 %101 = load i32, ptr %100, align 4 store i32 1, ptr %a84, align 4 %102 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %103 = load i32, ptr %a84, align 4 - %sisiext85 = sext i32 %103 to i64 - %104 = getelementptr inbounds [3 x i32], ptr %102, i64 0, i64 %sisiext85 + %sext85 = sext i32 %103 to i64 + %104 = getelementptr inbounds [3 x i32], ptr %102, i64 0, i64 %sext85 %105 = load i32, ptr %104, align 4 call void (ptr, ...) @printf(ptr @.str.12, i32 %101, i32 %105) store i32 1, ptr %a87, align 4 %106 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %107 = load i32, ptr %a87, align 4 - %sisiext88 = sext i32 %107 to i64 - %108 = getelementptr inbounds [3 x i32], ptr %106, i64 0, i64 %sisiext88 + %sext88 = sext i32 %107 to i64 + %108 = getelementptr inbounds [3 x i32], ptr %106, i64 0, i64 %sext88 store ptr %108, ptr %y86, align 8 %109 = load ptr, ptr %y86, align 8 %110 = load i32, ptr %109, align 4 @@ -463,14 +463,14 @@ loop.exit81: ; preds = %loop.cond75 store i32 0, ptr %a90, align 4 %111 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %112 = load i32, ptr %a90, align 4 - %sisiext91 = sext i32 %112 to i64 - %113 = getelementptr inbounds [3 x i32], ptr %111, i64 0, i64 %sisiext91 + %sext91 = sext i32 %112 to i64 + %113 = getelementptr inbounds [3 x i32], ptr %111, i64 0, i64 %sext91 %114 = load i32, ptr %113, align 4 store i32 1, ptr %a92, align 4 %115 = getelementptr inbounds %Foo, ptr %x, i32 0, i32 0 %116 = load i32, ptr %a92, align 4 - %sisiext93 = sext i32 %116 to i64 - %117 = getelementptr inbounds [3 x i32], ptr %115, i64 0, i64 %sisiext93 + %sext93 = sext i32 %116 to i64 + %117 = getelementptr inbounds [3 x i32], ptr %115, i64 0, i64 %sext93 %118 = load i32, ptr %117, align 4 call void (ptr, ...) @printf(ptr @.str.13, i32 %114, i32 %118) ret void diff --git a/test/test_suite/statements/foreach_common.c3t b/test/test_suite/statements/foreach_common.c3t index dabd33ce6..aa5c2df31 100644 --- a/test/test_suite/statements/foreach_common.c3t +++ b/test/test_suite/statements/foreach_common.c3t @@ -199,17 +199,17 @@ loop.cond26: ; preds = %loop.body28, %loop. loop.body28: ; preds = %loop.cond26 %29 = load i64, ptr %.anon25, align 8 - %ztrunc = trunc i64 %29 to i8 - store i8 %ztrunc, ptr %i29, align 1 + %trunc = trunc i64 %29 to i8 + store i8 %trunc, ptr %i29, align 1 %30 = load i64, ptr %.anon25, align 8 %31 = getelementptr inbounds [3 x float], ptr %foo, i64 0, i64 %30 %32 = load float, ptr %31, align 4 %fpfpext31 = fpext float %32 to double store double %fpfpext31, ptr %a30, align 8 %33 = load i8, ptr %i29, align 1 - %uisiext = zext i8 %33 to i32 + %zext = zext i8 %33 to i32 %34 = load double, ptr %a30, align 8 - call void (ptr, ...) @printf(ptr @.str.4, i32 %uisiext, double %34) + call void (ptr, ...) @printf(ptr @.str.4, i32 %zext, double %34) %35 = load i64, ptr %.anon25, align 8 %add32 = add i64 %35, 1 store i64 %add32, ptr %.anon25, align 8 @@ -329,17 +329,17 @@ loop.cond72: ; preds = %loop.body74, %loop. loop.body74: ; preds = %loop.cond72 %69 = load i64, ptr %.anon71, align 8 - %ztrunc76 = trunc i64 %69 to i8 - store i8 %ztrunc76, ptr %i75, align 1 + %trunc76 = trunc i64 %69 to i8 + store i8 %trunc76, ptr %i75, align 1 %70 = load <3 x float>, ptr %foo2, align 16 %71 = load i64, ptr %.anon71, align 8 %72 = extractelement <3 x float> %70, i64 %71 %fpfpext78 = fpext float %72 to double store double %fpfpext78, ptr %a77, align 8 %73 = load i8, ptr %i75, align 1 - %uisiext79 = zext i8 %73 to i32 + %zext79 = zext i8 %73 to i32 %74 = load double, ptr %a77, align 8 - call void (ptr, ...) @printf(ptr @.str.9, i32 %uisiext79, double %74) + call void (ptr, ...) @printf(ptr @.str.9, i32 %zext79, double %74) %75 = load i64, ptr %.anon71, align 8 %add80 = add i64 %75, 1 store i64 %add80, ptr %.anon71, align 8 diff --git a/test/test_suite/statements/foreach_r_common.c3t b/test/test_suite/statements/foreach_r_common.c3t index 7d8e23055..2f35bc1e1 100644 --- a/test/test_suite/statements/foreach_r_common.c3t +++ b/test/test_suite/statements/foreach_r_common.c3t @@ -197,17 +197,17 @@ loop.body28: ; preds = %loop.cond26 %sub29 = sub i64 %29, 1 store i64 %sub29, ptr %.anon25, align 8 %30 = load i64, ptr %.anon25, align 8 - %ztrunc = trunc i64 %30 to i8 - store i8 %ztrunc, ptr %i30, align 1 + %trunc = trunc i64 %30 to i8 + store i8 %trunc, ptr %i30, align 1 %31 = load i64, ptr %.anon25, align 8 %32 = getelementptr inbounds [3 x float], ptr %foo, i64 0, i64 %31 %33 = load float, ptr %32, align 4 %fpfpext32 = fpext float %33 to double store double %fpfpext32, ptr %a31, align 8 %34 = load i8, ptr %i30, align 1 - %uisiext = zext i8 %34 to i32 + %zext = zext i8 %34 to i32 %35 = load double, ptr %a31, align 8 - call void (ptr, ...) @printf(ptr @.str.4, i32 %uisiext, double %35) + call void (ptr, ...) @printf(ptr @.str.4, i32 %zext, double %35) br label %loop.cond26 loop.exit33: ; preds = %loop.cond26 @@ -319,17 +319,17 @@ loop.body71: ; preds = %loop.cond69 %sub72 = sub i64 %65, 1 store i64 %sub72, ptr %.anon68, align 8 %66 = load i64, ptr %.anon68, align 8 - %ztrunc74 = trunc i64 %66 to i8 - store i8 %ztrunc74, ptr %i73, align 1 + %trunc74 = trunc i64 %66 to i8 + store i8 %trunc74, ptr %i73, align 1 %67 = load <3 x float>, ptr %foo2, align 16 %68 = load i64, ptr %.anon68, align 8 %69 = extractelement <3 x float> %67, i64 %68 %fpfpext76 = fpext float %69 to double store double %fpfpext76, ptr %a75, align 8 %70 = load i8, ptr %i73, align 1 - %uisiext77 = zext i8 %70 to i32 + %zext77 = zext i8 %70 to i32 %71 = load double, ptr %a75, align 8 - call void (ptr, ...) @printf(ptr @.str.9, i32 %uisiext77, double %71) + call void (ptr, ...) @printf(ptr @.str.9, i32 %zext77, double %71) br label %loop.cond69 loop.exit78: ; preds = %loop.cond69 diff --git a/test/test_suite/struct/struct_pack_and_align.c3t b/test/test_suite/struct/struct_pack_and_align.c3t index a6fd46bf5..469f4e618 100644 --- a/test/test_suite/struct/struct_pack_and_align.c3t +++ b/test/test_suite/struct/struct_pack_and_align.c3t @@ -93,9 +93,9 @@ entry: store i8 %0, ptr %1, align 16 %2 = getelementptr inbounds %Foo5, ptr %y, i32 0, i32 2 %3 = load i8, ptr %2, align 16 - %sisiext = sext i8 %3 to i32 + %sext = sext i8 %3 to i32 %4 = getelementptr inbounds %Foo5, ptr %y, i32 0, i32 0 %5 = load i32, ptr %4, align 16 - %add = add i32 %sisiext, %5 + %add = add i32 %sext, %5 ret i32 %add }