Push to trunk since the CI is green :)

On Tue, Apr 1, 2025 at 3:43 PM Kito Cheng <kito.ch...@sifive.com> wrote:
>
> Linux toolchain may configured with --enable-default-pie, and that will
> cause lots of regression test failures because the function name will
> append with @plt suffix (e.g. `call foo` become `call foo@plt`), also
> some code generation  will different due to the code model like the address
> generation for global variable, so we may add -fno-pie to those
> testcases to prevent that.
>
> We may consider just drop @plt suffix to prevent that at all, because
> it's not difference between w/ and w/o @plt suffix, the linker will pick
> the right one to do, however it's late stage of GCC development, so just
> tweak the testcase should be the best way to do now.
>
> Changes from v1:
> - Add more testcase for PIE (from rvv.exp).
> - Tweak the rule for match @plt.
>
> gcc/testsuite/ChangeLog:
>
>         * gcc.target/riscv/rv32i_zcmp.c: Tweak testcase for PIE.
>         * gcc.target/riscv/rv32e_zcmp.c: Likewise.
>         * gcc.target/riscv/zcmp_stack_alignment.c: Likewise.
>         * gcc.target/riscv/cm_mv_rv32.c: Likewise.
>         * gcc.target/riscv/cpymem-64.c: Likewise.
>         * gcc.target/riscv/fmax-snan.c: Likewise.
>         * gcc.target/riscv/fmaxf-snan.c: Likewise.
>         * gcc.target/riscv/fmin-snan.c: Likewise.
>         * gcc.target/riscv/fminf-snan.c: Likewise.
>         * gcc.target/riscv/large-model.c: Likewise.
>         * gcc.target/riscv/predef-1.c: Likewise.
>         * gcc.target/riscv/predef-4.c: Likewise.
>         * gcc.target/riscv/predef-7.c: Likewise.
>         * gcc.target/riscv/predef-9.c: Likewise.
>         * gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c: 
> Likewise.
>         * gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c: Likewise.
>         * gcc.target/riscv/rvv/base/abi-callee-saved-2.c: Likewise.
>         * gcc.target/riscv/rvv/base/cmpmem-1.c: Likewise.
>         * gcc.target/riscv/rvv/base/cmpmem-3.c: Likewise.
>         * gcc.target/riscv/rvv/base/cmpmem-4.c: Likewise.
>         * gcc.target/riscv/rvv/base/cpymem-1.c: Likewise.
>         * gcc.target/riscv/rvv/base/movmem-1.c: Likewise.
>         * gcc.target/riscv/rvv/base/pr114352-3.c: Likewise.
>         * gcc.target/riscv/rvv/base/setmem-1.c: Likewise.
>         * gcc.target/riscv/rvv/base/setmem-2.c: Likewise.
>         * gcc.target/riscv/rvv/base/setmem-3.c: Likewise.
>         * gcc.target/riscv/rvv/base/spill-9.c: Likewise.
>         * g++.target/riscv/mv-symbols1.C: Likewise.
>         * g++.target/riscv/mv-symbols3.C: Likewise.
>         * g++.target/riscv/mv-symbols4.C: Likewise.
>         * g++.target/riscv/mv-symbols5.C: Likewise.
>         * g++.target/riscv/mvc-symbols1.C: Likewise.
>         * g++.target/riscv/mvc-symbols3.C: Likewise.
> ---
>  gcc/testsuite/g++.target/riscv/mv-symbols1.C                | 4 ++--
>  gcc/testsuite/g++.target/riscv/mv-symbols3.C                | 4 ++--
>  gcc/testsuite/g++.target/riscv/mv-symbols4.C                | 4 ++--
>  gcc/testsuite/g++.target/riscv/mv-symbols5.C                | 4 ++--
>  gcc/testsuite/g++.target/riscv/mvc-symbols1.C               | 4 ++--
>  gcc/testsuite/g++.target/riscv/mvc-symbols3.C               | 4 ++--
>  gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c                 | 4 ++--
>  gcc/testsuite/gcc.target/riscv/cpymem-64.c                  | 4 ++--
>  gcc/testsuite/gcc.target/riscv/fmax-snan.c                  | 2 +-
>  gcc/testsuite/gcc.target/riscv/fmaxf-snan.c                 | 2 +-
>  gcc/testsuite/gcc.target/riscv/fmin-snan.c                  | 2 +-
>  gcc/testsuite/gcc.target/riscv/fminf-snan.c                 | 2 +-
>  gcc/testsuite/gcc.target/riscv/large-model.c                | 2 +-
>  gcc/testsuite/gcc.target/riscv/predef-1.c                   | 2 +-
>  gcc/testsuite/gcc.target/riscv/predef-4.c                   | 2 +-
>  gcc/testsuite/gcc.target/riscv/predef-7.c                   | 2 +-
>  gcc/testsuite/gcc.target/riscv/predef-9.c                   | 2 +-
>  gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c                 | 6 +++---
>  gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c                 | 6 +++---
>  .../riscv/rvv/base/abi-callee-saved-2-save-restore.c        | 6 +++---
>  .../gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c     | 6 +++---
>  .../gcc.target/riscv/rvv/base/abi-callee-saved-2.c          | 6 +++---
>  gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c          | 4 ++--
>  gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c          | 4 ++--
>  gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c          | 4 ++--
>  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c          | 4 ++--
>  gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c          | 2 +-
>  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c        | 4 ++--
>  gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c          | 2 +-
>  gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c          | 2 +-
>  gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c          | 2 +-
>  gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c           | 2 +-
>  gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c       | 2 +-
>  33 files changed, 56 insertions(+), 56 deletions(-)
>
> diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols1.C 
> b/gcc/testsuite/g++.target/riscv/mv-symbols1.C
> index ea1a536fd00..e18c984cf51 100644
> --- a/gcc/testsuite/g++.target/riscv/mv-symbols1.C
> +++ b/gcc/testsuite/g++.target/riscv/mv-symbols1.C
> @@ -57,7 +57,7 @@ int bar(int x)
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */
> -/* { dg-final { scan-assembler-times "\n\t\call\t_Z3foov\n" 1 } } */
> +/* { dg-final { scan-assembler-times "\n\t\call\t_Z3foov(?:@plt)?\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, 
> @gnu_indirect_function\n" 1 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */
>
> @@ -65,6 +65,6 @@ int bar(int x)
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */
> -/* { dg-final { scan-assembler-times "\n\t\call\t_Z3fooi\n" 1 } } */
> +/* { dg-final { scan-assembler-times "\n\t\call\t_Z3fooi(?:@plt)?\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, 
> @gnu_indirect_function\n" 1 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */
> diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols3.C 
> b/gcc/testsuite/g++.target/riscv/mv-symbols3.C
> index 4dc81cf7395..6596a277f6a 100644
> --- a/gcc/testsuite/g++.target/riscv/mv-symbols3.C
> +++ b/gcc/testsuite/g++.target/riscv/mv-symbols3.C
> @@ -37,7 +37,7 @@ int bar()
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, 
> @gnu_indirect_function\n" 1 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */
>
> @@ -45,6 +45,6 @@ int bar()
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 0 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, 
> @gnu_indirect_function\n" 0 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */
> diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols4.C 
> b/gcc/testsuite/g++.target/riscv/mv-symbols4.C
> index b0ed16a5eda..83d51e33706 100644
> --- a/gcc/testsuite/g++.target/riscv/mv-symbols4.C
> +++ b/gcc/testsuite/g++.target/riscv/mv-symbols4.C
> @@ -43,7 +43,7 @@ int bar()
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, 
> @gnu_indirect_function\n" 1 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */
>
> @@ -51,6 +51,6 @@ int bar()
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 0 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, 
> @gnu_indirect_function\n" 0 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */
> diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols5.C 
> b/gcc/testsuite/g++.target/riscv/mv-symbols5.C
> index f4c6b294e0f..c92421ab0fb 100644
> --- a/gcc/testsuite/g++.target/riscv/mv-symbols5.C
> +++ b/gcc/testsuite/g++.target/riscv/mv-symbols5.C
> @@ -49,7 +49,7 @@ int bar()
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, 
> @gnu_indirect_function\n" 1 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */
>
> @@ -57,6 +57,6 @@ int bar()
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 0 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, 
> @gnu_indirect_function\n" 0 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */
> diff --git a/gcc/testsuite/g++.target/riscv/mvc-symbols1.C 
> b/gcc/testsuite/g++.target/riscv/mvc-symbols1.C
> index c78bc7cb64a..bd65a2c8249 100644
> --- a/gcc/testsuite/g++.target/riscv/mvc-symbols1.C
> +++ b/gcc/testsuite/g++.target/riscv/mvc-symbols1.C
> @@ -36,7 +36,7 @@ int bar(int x)
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, 
> @gnu_indirect_function\n" 1 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */
>
> @@ -44,6 +44,6 @@ int bar(int x)
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 1 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, 
> @gnu_indirect_function\n" 1 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */
> diff --git a/gcc/testsuite/g++.target/riscv/mvc-symbols3.C 
> b/gcc/testsuite/g++.target/riscv/mvc-symbols3.C
> index b36c3fa7a95..78f027b0457 100644
> --- a/gcc/testsuite/g++.target/riscv/mvc-symbols3.C
> +++ b/gcc/testsuite/g++.target/riscv/mvc-symbols3.C
> @@ -29,7 +29,7 @@ int bar(int x)
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, 
> @gnu_indirect_function\n" 1 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */
>
> @@ -37,6 +37,6 @@ int bar(int x)
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 0 } } */
>  /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */
> -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 1 } } */
> +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 1 } } */
>  /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, 
> @gnu_indirect_function\n" 1 } } */
>  /* { dg-final { scan-assembler-times 
> "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */
> diff --git a/gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c 
> b/gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c
> index e2369fc4d2d..326d5dc5d66 100644
> --- a/gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c
> +++ b/gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c
> @@ -10,10 +10,10 @@ func (int a, int b);
>  **sum:
>  **     ...
>  **     cm.mvsa01       s1,s2
> -**     call    func
> +**     call    func(?:@plt)?
>  **     mv      s0,a0
>  **     cm.mva01s       s1,s2
> -**     call    func
> +**     call    func(?:@plt)?
>  **     ...
>  */
>  int
> diff --git a/gcc/testsuite/gcc.target/riscv/cpymem-64.c 
> b/gcc/testsuite/gcc.target/riscv/cpymem-64.c
> index 37b8ef0e020..c91b0154a29 100644
> --- a/gcc/testsuite/gcc.target/riscv/cpymem-64.c
> +++ b/gcc/testsuite/gcc.target/riscv/cpymem-64.c
> @@ -95,7 +95,7 @@ COPY_ALIGNED_N(11)
>  /*
>  **copy_15:
>  **    ...
> -**    (call|tail)\tmemcpy
> +**    (call|tail)\tmemcpy(?:@plt)?
>  **    ...
>  */
>  COPY_N(15)
> @@ -116,7 +116,7 @@ COPY_ALIGNED_N(15)
>  /*
>  **copy_27:
>  **    ...
> -**    (call|tail)\tmemcpy
> +**    (call|tail)\tmemcpy(?:@plt)?
>  **    ...
>  */
>  COPY_N(27)
> diff --git a/gcc/testsuite/gcc.target/riscv/fmax-snan.c 
> b/gcc/testsuite/gcc.target/riscv/fmax-snan.c
> index aabaad5c973..a1f61495783 100644
> --- a/gcc/testsuite/gcc.target/riscv/fmax-snan.c
> +++ b/gcc/testsuite/gcc.target/riscv/fmax-snan.c
> @@ -10,4 +10,4 @@ fmax (double x, double y)
>
>  /* { dg-final { scan-assembler-not "\tfmax\\.d\t" } } */
>  /* { dg-final { scan-assembler-not "\tfge\\.d\t" } } */
> -/* { dg-final { scan-assembler "\t(call|tail)\tfmax\t" } } */
> +/* { dg-final { scan-assembler "\t(call|tail)\tfmax(?:@plt)?\t" } } */
> diff --git a/gcc/testsuite/gcc.target/riscv/fmaxf-snan.c 
> b/gcc/testsuite/gcc.target/riscv/fmaxf-snan.c
> index f74a8171882..1daf3e9e0aa 100644
> --- a/gcc/testsuite/gcc.target/riscv/fmaxf-snan.c
> +++ b/gcc/testsuite/gcc.target/riscv/fmaxf-snan.c
> @@ -10,4 +10,4 @@ fmaxf (float x, float y)
>
>  /* { dg-final { scan-assembler-not "\tfmax\\.s\t" } } */
>  /* { dg-final { scan-assembler-not "\tfge\\.s\t" } } */
> -/* { dg-final { scan-assembler "\t(call|tail)\tfmaxf\t" } } */
> +/* { dg-final { scan-assembler "\t(call|tail)\tfmaxf(?:@plt)?\t" } } */
> diff --git a/gcc/testsuite/gcc.target/riscv/fmin-snan.c 
> b/gcc/testsuite/gcc.target/riscv/fmin-snan.c
> index 3b2e8c3aa66..cc0e16cc201 100644
> --- a/gcc/testsuite/gcc.target/riscv/fmin-snan.c
> +++ b/gcc/testsuite/gcc.target/riscv/fmin-snan.c
> @@ -10,4 +10,4 @@ fmin (double x, double y)
>
>  /* { dg-final { scan-assembler-not "\tfmin\\.d\t" } } */
>  /* { dg-final { scan-assembler-not "\tfle\\.d\t" } } */
> -/* { dg-final { scan-assembler "\t(call|tail)\tfmin\t" } } */
> +/* { dg-final { scan-assembler "\t(call|tail)\tfmin(?:@plt)?\t" } } */
> diff --git a/gcc/testsuite/gcc.target/riscv/fminf-snan.c 
> b/gcc/testsuite/gcc.target/riscv/fminf-snan.c
> index d28822e5eca..598644e9b00 100644
> --- a/gcc/testsuite/gcc.target/riscv/fminf-snan.c
> +++ b/gcc/testsuite/gcc.target/riscv/fminf-snan.c
> @@ -10,4 +10,4 @@ fminf (float x, float y)
>
>  /* { dg-final { scan-assembler-not "\tfmin\\.s\t" } } */
>  /* { dg-final { scan-assembler-not "\tfle\\.s\t" } } */
> -/* { dg-final { scan-assembler "\t(call|tail)\tfminf\t" } } */
> +/* { dg-final { scan-assembler "\t(call|tail)\tfminf(?:@plt)?\t" } } */
> diff --git a/gcc/testsuite/gcc.target/riscv/large-model.c 
> b/gcc/testsuite/gcc.target/riscv/large-model.c
> index 244d14e1878..d5ef7a0d0b9 100644
> --- a/gcc/testsuite/gcc.target/riscv/large-model.c
> +++ b/gcc/testsuite/gcc.target/riscv/large-model.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-march=rv64gc -mabi=lp64 -fno-section-anchors 
> -mcmodel=large" } */
> +/* { dg-options "-march=rv64gc -mabi=lp64 -fno-section-anchors 
> -mcmodel=large -fno-pie" } */
>  /* { dg-skip-if "" { *-*-* } {"-O0"} } */
>  int a, b;
>  int foo1()
> diff --git a/gcc/testsuite/gcc.target/riscv/predef-1.c 
> b/gcc/testsuite/gcc.target/riscv/predef-1.c
> index 250812a1040..551346e1fd3 100644
> --- a/gcc/testsuite/gcc.target/riscv/predef-1.c
> +++ b/gcc/testsuite/gcc.target/riscv/predef-1.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-march=rv32i -mabi=ilp32 -mcmodel=medlow" } */
> +/* { dg-options "-march=rv32i -mabi=ilp32 -mcmodel=medlow -fno-pie" } */
>
>  int main () {
>  #if !defined(__riscv)
> diff --git a/gcc/testsuite/gcc.target/riscv/predef-4.c 
> b/gcc/testsuite/gcc.target/riscv/predef-4.c
> index ba8b5c785a9..7b3c05477d8 100644
> --- a/gcc/testsuite/gcc.target/riscv/predef-4.c
> +++ b/gcc/testsuite/gcc.target/riscv/predef-4.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-march=rv64ia -mabi=lp64 -mcmodel=medlow" } */
> +/* { dg-options "-march=rv64ia -mabi=lp64 -mcmodel=medlow -fno-pie" } */
>
>  int main () {
>  #if !defined(__riscv)
> diff --git a/gcc/testsuite/gcc.target/riscv/predef-7.c 
> b/gcc/testsuite/gcc.target/riscv/predef-7.c
> index 833e2be887d..36caf8eb49d 100644
> --- a/gcc/testsuite/gcc.target/riscv/predef-7.c
> +++ b/gcc/testsuite/gcc.target/riscv/predef-7.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-march=rv32em -mabi=ilp32e -mno-div -mcmodel=medlow" } */
> +/* { dg-options "-march=rv32em -mabi=ilp32e -mno-div -mcmodel=medlow 
> -fno-pie" } */
>
>  int main () {
>  #if !defined(__riscv)
> diff --git a/gcc/testsuite/gcc.target/riscv/predef-9.c 
> b/gcc/testsuite/gcc.target/riscv/predef-9.c
> index b173d5df57f..fa072ad9b79 100644
> --- a/gcc/testsuite/gcc.target/riscv/predef-9.c
> +++ b/gcc/testsuite/gcc.target/riscv/predef-9.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile } */
> -/* { dg-options "-march=rv64em -mabi=lp64e -mno-div -mcmodel=medlow" } */
> +/* { dg-options "-march=rv64em -mabi=lp64e -mno-div -mcmodel=medlow 
> -fno-pie" } */
>  /* { dg-warning "LP64E ABI is marked for deprecation in GCC" "" { target 
> *-*-* } 0 } */
>  /* { dg-note "if you need LP64E please notify the GCC project via PR116152" 
> "" { target *-*-* } 0 } */
>
> diff --git a/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c 
> b/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
> index 0af4d7199f6..fd845f53335 100644
> --- a/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
> +++ b/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
> @@ -244,9 +244,9 @@ test_f0 ()
>  /*
>  **foo:
>  **     cm.push {ra}, -16
> -**     call    f1
> +**     call    f1(?:@plt)?
>  **     cm.pop  {ra}, 16
> -**     tail    f2
> +**     tail    f2(?:@plt)?
>  */
>  void
>  foo (void)
> @@ -258,7 +258,7 @@ foo (void)
>  /*
>  **test_popretz:
>  **     cm.push {ra}, -16
> -**     call    f1
> +**     call    f1(?:@plt)?
>  **     li      a0,0
>  **     cm.popret       {ra}, 16
>  */
> diff --git a/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c 
> b/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
> index 723889f49df..d90f4f47c8d 100644
> --- a/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
> +++ b/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
> @@ -244,9 +244,9 @@ test_f0 ()
>  /*
>  **foo:
>  **     cm.push {ra}, -16
> -**     call    f1
> +**     call    f1(?:@plt)?
>  **     cm.pop  {ra}, 16
> -**     tail    f2
> +**     tail    f2(?:@plt)?
>  */
>  void
>  foo (void)
> @@ -258,7 +258,7 @@ foo (void)
>  /*
>  **test_popretz:
>  **     cm.push {ra}, -16
> -**     call    f1
> +**     call    f1(?:@plt)?
>  **     li      a0,0
>  **     cm.popret       {ra}, 16
>  */
> diff --git 
> a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c
> index 39c8c007d3f..d21b810ea25 100644
> --- 
> a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c
> +++ 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c
> @@ -51,7 +51,7 @@ foo1 (vint8m1_t a)
>  **    vs1r\.v\tv30,0\(sp\)
>  **    sub\tsp,sp,t0
>  **    vs1r\.v\tv31,0\(sp\)
> -**    call\tbar2
> +**    call\tbar2(?:@plt)?
>  **    csrr\tt0,vlenb
>  **    vl1re64\.v\tv31,0\(sp\)
>  **    add\tsp,sp,t0
> @@ -96,8 +96,8 @@ foo2 (vint8m1_t a)
>  ** foo3:
>  **   call\tt0,__riscv_save_0
>  **   vl1re8\.v\tv8,0\(a0\)
> -**   call\tbar1
> -**   call\tbar2
> +**   call\tbar1(?:@plt)?
> +**   call\tbar2(?:@plt)?
>  **   tail\t__riscv_restore_0
>  */
>  void
> diff --git 
> a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c
> index 5f8f96f86a9..70a32d7ce7f 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c
> @@ -10,7 +10,7 @@ void bar2 ();
>  /*
>  ** foo1:
>  **   cm.push\t{ra},\s*-16
> -**   call\tbar1
> +**   call\tbar1(?:@plt)?
>  **   cm.popret\t{ra},\s*16
>  */
>  void
> @@ -53,7 +53,7 @@ foo1 (vint8m1_t a)
>  **    vs1r\.v\tv30,0\(sp\)
>  **    sub\tsp,sp,t0
>  **    vs1r\.v\tv31,0\(sp\)
> -**    call\tbar2
> +**    call\tbar2(?:@plt)?
>  **    csrr\tt0,vlenb
>  **    vl1re64\.v\tv31,0\(sp\)
>  **    add\tsp,sp,t0
> @@ -97,7 +97,7 @@ foo2 (vint8m1_t a)
>  ** foo3:
>  **   cm.push\t{ra},\s*-16
>  **   vl1re8\.v\tv8,0\(a0\)
> -**   call\tbar1
> +**   call\tbar1(?:@plt)?
>  **   cm.popret\t{ra},\s*16
>  */
>  void
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c
> index a9f3855b413..3f2cb2fa671 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c
> @@ -11,7 +11,7 @@ void bar2 ();
>  ** foo1:
>  **   addi\tsp,sp,-16
>  **   sd\tra,8\(sp\)
> -**   call\tbar1
> +**   call\tbar1(?:@plt)?
>  **   ld\tra,8\(sp\)
>  **   addi\tsp,sp,16
>  **   jr\tra
> @@ -57,7 +57,7 @@ foo1 (vint8m1_t a)
>  **    vs1r\.v\tv30,0\(sp\)
>  **    sub\tsp,sp,t0
>  **    vs1r\.v\tv31,0\(sp\)
> -**    call\tbar2
> +**    call\tbar2(?:@plt)?
>  **    csrr\tt0,vlenb
>  **    vl1re64\.v\tv31,0\(sp\)
>  **    add\tsp,sp,t0
> @@ -105,7 +105,7 @@ foo2 (vint8m1_t a)
>  **   addi\tsp,sp,-16
>  **   sd\tra,8\(sp\)
>  **   vl1re8\.v\tv8,0\(a0\)
> -**   call\tbar1
> +**   call\tbar1(?:@plt)?
>  **   ld\tra,8\(sp\)
>  **   addi\tsp,sp,16
>  **   jr\tra
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c
> index 9edd6cb54ba..3534720d8e8 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c
> @@ -21,7 +21,7 @@ f1 (void *a, void *b)
>  /* Tiny __builtin_memcmp should use libc.
>  ** f2:
>  **  li\s+a\d,\d+
> -**  tail\s+memcmp
> +**  tail\s+memcmp(?:@plt)?
>  */
>  int
>  f2 (void *a, void *b)
> @@ -79,7 +79,7 @@ f5 (void *a, void *b)
>  /* Don't inline if the length is too large for one operation.
>  ** f6:
>  **  li\s+a2,\d+
> -**  tail\s+memcmp
> +**  tail\s+memcmp(?:@plt)?
>  */
>  int
>  f6 (void *a, void *b)
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c
> index 82aa3076579..c1c1aae4495 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c
> @@ -8,7 +8,7 @@
>  /* Tiny __builtin_memcmp should use libc.
>  ** f1:
>  **  li\s+a\d,\d+
> -**  tail\s+memcmp
> +**  tail\s+memcmp(?:@plt)?
>  */
>  int
>  f1 (void *a, void *b)
> @@ -36,7 +36,7 @@ f2 (void *a, void *b)
>  /* Don't inline if the length is too large for one operation.
>  ** f3:
>  **  li\s+a2,\d+
> -**  tail\s+memcmp
> +**  tail\s+memcmp(?:@plt)?
>  */
>  int
>  f3 (void *a, void *b)
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c
> index e2dd6a1c45f..ad87038cef4 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c
> @@ -8,7 +8,7 @@
>  /* Tiny __builtin_memcmp should use libc.
>  ** f1:
>  **  li\s+a\d,\d+
> -**  tail\s+memcmp
> +**  tail\s+memcmp(?:@plt)?
>  */
>  int
>  f1 (void *a, void *b)
> @@ -53,7 +53,7 @@ f3 (void *a, void *b)
>  /* Don't inline if the length is too large for one operation.
>  ** f4:
>  **  li\s+a2,\d+
> -**  tail\s+memcmp
> +**  tail\s+memcmp(?:@plt)?
>  */
>  int
>  f4 (void *a, void *b)
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c
> index 654c80087d2..5e35204fd37 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile { target { ! riscv_abi_e } } } */
> -/* { dg-additional-options "-O1 -fno-schedule-insns -fno-schedule-insns2" } 
> */
> +/* { dg-additional-options "-O1 -fno-schedule-insns -fno-schedule-insns2 
> -fno-pie" } */
>  /* { dg-add-options riscv_v } */
>  /* { dg-final { check-function-bodies "**" "" } } */
>
> @@ -109,4 +109,4 @@ void f3 ()
>    memcpy (&a_a, &a_b, sizeof a_a);
>  }
>
> -/* { dg-final { scan-assembler-not {\m(tail|call)\s+memcpy\M} } } */
> +/* { dg-final { scan-assembler-not {\m(tail|call)\s+memcpy(?:@plt)?\M} } } */
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c
> index 03e633be271..44bf3d75fd0 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c
> @@ -52,7 +52,7 @@ f3 (char *a, char const *b)
>  /* Don't vectorise if the move is too large for one operation
>  ** f4:
>  **  li\s+a2,\d+
> -**  tail\s+memmove
> +**  tail\s+memmove(?:@plt)?
>  */
>  char *
>  f4 (char *a, char const *b)
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c
> index 9bfa39c5268..4f375e526be 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c
> @@ -93,9 +93,9 @@ test_5 (_Float16 *a, _Float16 *b, _Float16 *out, unsigned 
> count)
>  /*
>  ** test_6:
>  ** ...
> -** call\s+__extendhfsf2
> +** call\s+__extendhfsf2(?:@plt)?
>  ** ...
> -** call\s+__truncsfhf2
> +** call\s+__truncsfhf2(?:@plt)?
>  ** ...
>  */
>  void
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c
> index a22d366de9b..490445f4f6b 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c
> @@ -94,7 +94,7 @@ f6 (void *a, int const b)
>  /* Don't vectorise if the move is too large for one operation.
>  ** f7:
>  **  li\s+a2,\d+
> -**  tail\s+memset
> +**  tail\s+memset(?:@plt)?
>  */
>  void *
>  f7 (void *a, int const b)
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c
> index a10886862b2..876929e0422 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c
> @@ -44,7 +44,7 @@ f2 (void *a, int const b)
>  /* Don't vectorise if the move is too large for requested lmul.
>  ** f3:
>  **  li\s+a2,\d+
> -**  tail\s+memset
> +**  tail\s+memset(?:@plt)?
>  */
>  void *
>  f3 (void *a, int const b)
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c
> index 460a8f2c7fe..a185916d27d 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c
> @@ -62,7 +62,7 @@ f3 (void *a, int const b)
>  /* Don't vectorise if the move is too large for requested lmul.
>  ** f4:
>  **  li\s+a2,\d+
> -**  tail\s+memset
> +**  tail\s+memset(?:@plt)?
>  */
>  void *
>  f4 (void *a, int const b)
> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c 
> b/gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c
> index 7e5758b18d1..375d3166a46 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c
> @@ -18,7 +18,7 @@ void f (char*);
>  **     ...
>  **     addi\ta0,sp,15
>  **     andi\ta0,a0,-16
> -**     call\tf
> +**     call\tf(?:@plt)?
>  **     ...
>  **     lw\tra,12\(sp\)
>  **     lw\ts0,8\(sp\)
> diff --git a/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c 
> b/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c
> index f7d8f446b79..be304e7bdb2 100644
> --- a/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c
> +++ b/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c
> @@ -10,7 +10,7 @@ bar ();
>  **fool_rv32e:
>  **     cm.push {ra}, -32
>  **     ...
> -**     call    bar
> +**     call    bar(?:@plt)?
>  **     ...
>  **     lw      a[0-5],32\(sp\)
>  **     ...
> --
> 2.34.1
>

Reply via email to