On Mon, 2023-09-25 at 17:38 +0800, Chenghui Pan wrote:
> Hi!
> 
> After some attemptions, I think we still ne to check
> "check_effective_target_loongarch_sx" in vect_int_mod. I wrote some
> temp logics in gcc/testsuite/lib/target-supports.exp like this:
> 
> diff --git a/gcc/testsuite/lib/target-supports.exp
> b/gcc/testsuite/lib/target-supports.exp
> index 2de41cef2f6..91e1c22a6e1 100644
> --- a/gcc/testsuite/lib/target-supports.exp
> +++ b/gcc/testsuite/lib/target-supports.exp
> @@ -8586,7 +8586,8 @@ proc check_effective_target_vect_int_mod { } {
>      return [check_cached_effective_target_indexed vect_int_mod {
>        expr { ([istarget powerpc*-*-*]
>               && [check_effective_target_has_arch_pwr10])
> -             || [istarget amdgcn-*-*] }}]
> +             || [istarget loongarch*-*-*]
> +             || [istarget amdgcn-*-*] }}]
>  }
>  
>  # Return 1 if the target supports vector even/odd elements extraction,
> 0 otherwise.
> @@ -11174,6 +11175,12 @@ proc check_vect_support_and_set_flags { } {
>             lappend DEFAULT_VECTCFLAGS "--param" "riscv-vector-abi"
>             set dg-do-what-default compile
>         }
> +    } elseif [istarget loongarch*-*-*] {
> +      if [check_effective_target_loongarch_asx_hw] {
> +         lappend DEFAULT_VECTCFLAGS "-mdouble-float" "-mlasx"
> +      } elseif [check_effective_target_loongarch_sx_hw] {
> +         lappend DEFAULT_VECTCFLAGS "-mdouble-float" "-mlsx"
> +      }

I think we can always enable LASX in DEFAULT_VECTCFLAGS, but set dg-do-
what-default to "run" only if both the hardware and the kernel supports
LASX.  If the kernel or the hardware is not capable we set dg-do-what-
default to "compile".

>      } else {
>          return 0
>      }
> \* temp impl of sx/asx hw proc *\
> 
> And then in make check without --target_board=unix/-mlasx, vect.exp is
> invoked with expected vector isa options, but pr104992.c failed because
> it expected result with "vect_int_mod returns 1" but it was compiled
> without -mlsx/-mlasx. Seems pr104992.c is invoked by gcc.dg/dg.exp,
> pr104992.c is not affected by DEFAULT_CFLAGS, so we still need to check
> if LSX/LASX is available in vect_int_mod. 
> 
> Other parts of new patch is still WIP.

-- 
Xi Ruoyao <xry...@xry111.site>
School of Aerospace Science and Technology, Xidian University

Reply via email to