Correct confusing usage of intirnsic check (#707)

This commit is contained in:
Huang Qi 2021-08-27 19:03:18 +08:00 committed by GitHub
parent e80715f352
commit 6ef74778c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 7 deletions

View File

@ -394,10 +394,11 @@ aot_intrinsic_fill_capability_flags(AOTCompContext *comp_ctx)
return;
if (!strncmp(comp_ctx->target_arch, "thumb", 5)) {
if (!strcmp(comp_ctx->target_cpu, "cortex-m4")) {
add_f32_common_intrinsics_for_thumb2_fpu(comp_ctx);
if (!strcmp(comp_ctx->target_cpu, "cortex-m7")) {}
else if (!strcmp(comp_ctx->target_cpu, "cortex-m4")) {
add_f64_common_intrinsics_for_thumb2_fpu(comp_ctx);
}
else if (!strcmp(comp_ctx->target_cpu, "cortex-m7")) {
else {
add_f32_common_intrinsics_for_thumb2_fpu(comp_ctx);
add_f64_common_intrinsics_for_thumb2_fpu(comp_ctx);
}

View File

@ -147,9 +147,10 @@ call_llvm_float_experimental_constrained_intrinsic(AOTCompContext *comp_ctx,
va_list param_value_list;
LLVMValueRef ret;
LLVMTypeRef param_types[4], ret_type = is_f32 ? F32_TYPE : F64_TYPE;
int param_count = ((comp_ctx->disable_llvm_intrinsics == false)
|| aot_intrinsic_check_capability(comp_ctx, intrinsic))
? 4 : 2;
int param_count = (comp_ctx->disable_llvm_intrinsics
&& aot_intrinsic_check_capability(comp_ctx, intrinsic))
? 2
: 4;
param_types[0] = param_types[1] = ret_type;
param_types[2] = param_types[3] = MD_TYPE;

View File

@ -2024,7 +2024,7 @@ __call_llvm_intrinsic(const AOTCompContext *comp_ctx,
int32 func_idx;
if (comp_ctx->disable_llvm_intrinsics
&& (aot_intrinsic_check_capability(comp_ctx, name) == false)) {
&& aot_intrinsic_check_capability(comp_ctx, name)) {
if (func_ctx == NULL) {
aot_set_last_error_v("invalid func_ctx for intrinsic: %s", name);
return NULL;