尝试进行 Qt 测试,增加了 AI 人机调试工具 _console,以及 TransPyV 进行修正
This commit is contained in:
@@ -536,15 +536,7 @@ class AssignHandle(BaseHandle):
|
||||
if DefVal.type != expected_type:
|
||||
if isinstance(expected_type, ir.IntType) and isinstance(DefVal.type, ir.IntType):
|
||||
if DefVal.type.width < expected_type.width:
|
||||
if DefVal.type.width == 1:
|
||||
# i1 是布尔值,无符号语义,必须 zext
|
||||
DefVal = Gen.builder.zext(DefVal, expected_type, name=f"zext_default_{arg_idx}")
|
||||
else:
|
||||
is_unsigned: bool = Gen._check_node_unsigned(arg_def[def_idx]) or id(DefVal) in Gen._unsigned_results
|
||||
if is_unsigned:
|
||||
DefVal = Gen.builder.zext(DefVal, expected_type, name=f"zext_default_{arg_idx}")
|
||||
else:
|
||||
DefVal = Gen.builder.sext(DefVal, expected_type, name=f"sext_default_{arg_idx}")
|
||||
DefVal = Gen.builder.zext(DefVal, expected_type, name=f"zext_default_{arg_idx}")
|
||||
elif DefVal.type.width > expected_type.width:
|
||||
DefVal = Gen.builder.trunc(DefVal, expected_type, name=f"trunc_default_{arg_idx}")
|
||||
CallArgs.append(DefVal)
|
||||
|
||||
Reference in New Issue
Block a user