]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
RISC-V: Tweak testcase for PIE
authorKito Cheng <kito.cheng@sifive.com>
Tue, 1 Apr 2025 01:14:51 +0000 (09:14 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Tue, 1 Apr 2025 13:57:42 +0000 (21:57 +0800)
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.

33 files changed:
gcc/testsuite/g++.target/riscv/mv-symbols1.C
gcc/testsuite/g++.target/riscv/mv-symbols3.C
gcc/testsuite/g++.target/riscv/mv-symbols4.C
gcc/testsuite/g++.target/riscv/mv-symbols5.C
gcc/testsuite/g++.target/riscv/mvc-symbols1.C
gcc/testsuite/g++.target/riscv/mvc-symbols3.C
gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c
gcc/testsuite/gcc.target/riscv/cpymem-64.c
gcc/testsuite/gcc.target/riscv/fmax-snan.c
gcc/testsuite/gcc.target/riscv/fmaxf-snan.c
gcc/testsuite/gcc.target/riscv/fmin-snan.c
gcc/testsuite/gcc.target/riscv/fminf-snan.c
gcc/testsuite/gcc.target/riscv/large-model.c
gcc/testsuite/gcc.target/riscv/predef-1.c
gcc/testsuite/gcc.target/riscv/predef-4.c
gcc/testsuite/gcc.target/riscv/predef-7.c
gcc/testsuite/gcc.target/riscv/predef-9.c
gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c
gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c
gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c
gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c
gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c
gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c
gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c
gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c
gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c
gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c
gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c
gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c
gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c
gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c

index ea1a536fd00cf5ab6210ac0f8c3c3e8e4f44c1c9..e18c984cf510ac4ef16efd8f2cf70b488aeac7a2 100644 (file)
@@ -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 } } */
index 4dc81cf7395b16565c1c24ed786d59dd537ef45c..6596a277f6a9d60fba9b2f916cd4ad5cb3a4780c 100644 (file)
@@ -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 } } */
index b0ed16a5eda8fd4fc3ba2cf8c9b7da7cb6a4295a..83d51e337066774d6205d935f0894ae6a882c3cd 100644 (file)
@@ -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 } } */
index f4c6b294e0f33fc696c90c73bde57ea22580ae21..c92421ab0fb361d0d2f0b5f06427fe9491274316 100644 (file)
@@ -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 } } */
index c78bc7cb64a6206193eefd789a9349200eb5fcc0..bd65a2c824918c4e90e2c854c84838af7ed3d469 100644 (file)
@@ -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 } } */
index b36c3fa7a951f43a48543fb9bc3796a68546de28..78f027b0457e6952e5380bd5c571dc1e8118a44f 100644 (file)
@@ -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 } } */
index e2369fc4d2d3055b22f5858e364acaa5c60dc5f7..326d5dc5d66597c60c81c7fc3d2b03b21fa6bdcc 100644 (file)
@@ -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
index 37b8ef0e0200b142b77b5b421cf9890672c233d2..c91b0154a298e66cc725db84553a51ac70d48340 100644 (file)
@@ -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)
index aabaad5c9738e5e7dbc58e1807b849283424c00c..a1f61495783338e2d244bde78c5983d0955c5fd1 100644 (file)
@@ -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" } } */
index f74a81718824c4d8aeff9e80b2c05df428f1d812..1daf3e9e0aab85001b81fbc4f9efb00ddf609157 100644 (file)
@@ -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" } } */
index 3b2e8c3aa6659af46a13ae2303adb034459ae9d5..cc0e16cc201f89e5623044af164d2a324553e592 100644 (file)
@@ -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" } } */
index d28822e5ecaa239ab34beb601029c33ee29c3ac0..598644e9b008f9c51be72626d17de4d31e6c8b75 100644 (file)
@@ -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" } } */
index 244d14e18789dab9be63a2b5c5d3e3b80bb0bbc1..d5ef7a0d0b90fede60a628de76cb8b636a70f4f9 100644 (file)
@@ -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()
index 250812a10400b4f3008dd07a33804b39b431d046..551346e1fd3eac68bf4c21e3f8144951d88e5fb5 100644 (file)
@@ -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)
index ba8b5c785a91f3179d915c390f06b3d5bfcf4d4b..7b3c05477d87859af623a695a4e8511a4dca5b93 100644 (file)
@@ -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)
index 833e2be887ddd1d041685a2e1afea3dce83659a8..36caf8eb49df51e376f29d0d4a2bff31998e79ab 100644 (file)
@@ -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)
index b173d5df57fcc2e2b85cd20599df8df88d135ca3..fa072ad9b79f073ce0c3ef625e160b260c31deef 100644 (file)
@@ -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 } */
 
index 0af4d7199f68acd2c786ee9d32f0208496332762..fd845f5333594014f8f9a2ac3ea665b008977025 100644 (file)
@@ -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
 */
index 723889f49df66e918da6353ab8c9505b63595ec7..d90f4f47c8dd8cf420dc4f8bbc046374271ee348 100644 (file)
@@ -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
 */
index 39c8c007d3f0b1e8725531faccee8dfc4f1e81ad..d21b810ea25589ced4d30eeb68560206fa7425ae 100644 (file)
@@ -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
index 5f8f96f86a9abb3cd8a1fc13d3f7fb5e8c3beb6b..70a32d7ce7fe5861c9984732882ab01f3b420b8e 100644 (file)
@@ -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
index a9f3855b413cded9b0b6a3a0c8168b7e42e06a0e..3f2cb2fa671b8a421a7ccf599241a736199b5366 100644 (file)
@@ -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
index 9edd6cb54ba93ef07fe09767b80260e997e2eef6..3534720d8e860d3ec2be1ba48cd975c77fb4140c 100644 (file)
@@ -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)
index 82aa307657929b612d0a20d0273a74693c21fe02..c1c1aae4495315fbed57858fcddb742357b5c893 100644 (file)
@@ -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)
index e2dd6a1c45fe2c2e4757ee222ef856e7ad786ec8..ad87038cef4ccbe30b8abf092be8cc930c88e875 100644 (file)
@@ -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)
index 654c80087d247ad59664df9c8cef22adc8855046..5e35204fd3754941d72b2404961da98de8505ff6 100644 (file)
@@ -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} } } */
index 03e633be2719616e4cd6e8b86b7c2bdc4edeee37..44bf3d75fd0d01155efa930a68dcf381646b23b6 100644 (file)
@@ -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)
index 9bfa39c5268014de1c363ec9f837557bf3e22aa5..4f375e526be921ad32368902ba906afebb28e7ef 100644 (file)
@@ -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
index a22d366de9b06d7bf1fdc32564c9906dc98482a2..490445f4f6b0917bcaf4510fc37213b2d598562b 100644 (file)
@@ -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)
index a10886862b286c5a259af6e9b696adada9cbe695..876929e0422a81e17c17e5ad638d0d79b5ff3bf9 100644 (file)
@@ -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)
index 460a8f2c7fe9d27be795d30ed55124023eef9182..a185916d27d140d78d05436d61e5daa869a1b7f4 100644 (file)
@@ -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)
index 7e5758b18d1916067c84c9b0c52b03d5da335e5b..375d3166a4684fa717dfc5d7bc84448ddf6b3cff 100644 (file)
@@ -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\)
index f7d8f446b79c012235a06975bff40d3c5c2ee0cb..be304e7bdb24612008c1ea41b2ee5302ca4b98fe 100644 (file)
@@ -10,7 +10,7 @@ bar ();
 **fool_rv32e:
 **     cm.push {ra}, -32
 **     ...
-**     call    bar
+**     call    bar(?:@plt)?
 **     ...
 **     lw      a[0-5],32\(sp\)
 **     ...