Committing r16-3673 cause the test cases in the list to fail.
Make the test pass by modifying the test case or adding compilation
options.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/cmodel-extreme-1.c: Add -fPIC.
* gcc.target/loongarch/cmodel-extreme-2.c: Likewise.
* gcc.target/loongarch/tls-gd-noplt.c: Likewise.
* gcc.target/loongarch/tls-extreme-macro.c: Likewise.
* gcc.target/loongarch/func-call-medium-2.c: Modify.
* gcc.target/loongarch/func-call-medium-3.c: Modify.
* gcc.target/loongarch/func-call-medium-4.c: Removed.
/* { dg-do compile } */
-/* { dg-options "-march=loongarch64 -mabi=lp64d -O2 -mcmodel=extreme -mtls-dialect=trad -fno-plt -mexplicit-relocs=always -fdump-rtl-final" } */
+/* { dg-options "-march=loongarch64 -mabi=lp64d -O2 -mcmodel=extreme -mtls-dialect=trad -fno-plt -mexplicit-relocs=always -fdump-rtl-final -fPIC" } */
int a;
extern int b;
/* { dg-do compile } */
-/* { dg-options "-march=loongarch64 -mabi=lp64d -O2 -mcmodel=extreme -mtls-dialect=trad -fno-plt -mexplicit-relocs=auto -fdump-rtl-final" } */
+/* { dg-options "-march=loongarch64 -mabi=lp64d -O2 -mcmodel=extreme -mtls-dialect=trad -fno-plt -mexplicit-relocs=auto -fdump-rtl-final -fPIC" } */
#include "cmodel-extreme-1.c"
/* { dg-do compile } */
-/* { dg-options "-mabi=lp64d -O0 -fno-pic -fplt -mno-explicit-relocs -mtls-dialect=trad -mcmodel=medium" } */
-/* { dg-final { scan-assembler "test:.*la\.global\t.*g\n\tjirl" } } */
-/* { dg-final { scan-assembler "test1:.*la\.local\t.*f\n\tjirl" } } */
-/* { dg-final { scan-assembler "test2:.*la\.local\t.*l\n\tjirl" } } */
-/* { dg-final { scan-assembler "test3:.*la\.global\t.*\_\_tls\_get\_addr" { target tls_native } } } */
+/* { dg-options "-mabi=lp64d -O2 -fno-pic -fplt -mno-explicit-relocs -mtls-dialect=trad -mcmodel=medium" } */
+/* { dg-final { check-function-bodies "**" "" } } */
extern void g (void);
-void
+void __attribute__ ((noipa,noinline))
f (void)
{}
-static void
+static void __attribute__ ((noipa,noinline))
l (void)
{}
+/*
+** test:
+** la.global (\$r[0-9]+),g
+** jr (\$r[0-9]+)
+*/
void
test (void)
{
g ();
}
+/*
+** test1:
+** la.local (\$r[0-9]+),f
+** jr (\$r[0-9]+)
+*/
void
test1 (void)
{
f ();
}
+/*
+** test2:
+** la.local (\$r[0-9]+),l
+** jr (\$r[0-9]+)
+*/
void
test2 (void)
{
l ();
}
-
-__attribute__ ((tls_model ("global-dynamic"))) __thread int a;
-
-void
-test3 (void)
-{
- a = 10;
-}
/* { dg-do compile } */
-/* { dg-options "-mabi=lp64d -O0 -fpic -fno-plt -mno-explicit-relocs -mtls-dialect=trad -mcmodel=medium" } */
-/* { dg-final { scan-assembler "test:.*la\.global\t.*g\n\tjirl" } } */
-/* { dg-final { scan-assembler "test1:.*la\.global\t.*f\n\tjirl" } } */
-/* { dg-final { scan-assembler "test2:.*la\.local\t.*l\n\tjirl" } } */
-/* { dg-final { scan-assembler "test3:.*la\.global\t.*\_\_tls\_get\_addr" { target tls_native } } } */
+/* { dg-options "-mabi=lp64d -O2 -fpic -fno-plt -mno-explicit-relocs -mtls-dialect=trad -mcmodel=medium" } */
+/* { dg-final { check-function-bodies "**" "" } } */
extern void g (void);
-void
+void __attribute__ ((noinline))
f (void)
{}
-static void
+static void __attribute__ ((noipa,noinline))
l (void)
{}
+/*
+** test:
+** la.global (\$r[0-9]+),g
+** jr (\$r[0-9]+)
+*/
void
test (void)
{
g ();
}
+/*
+** test1:
+** la.global (\$r[0-9]+),f
+** jr (\$r[0-9]+)
+*/
void
test1 (void)
{
f ();
}
+/*
+** test2:
+** la.local (\$r[0-9]+),l
+** jr (\$r[0-9]+)
+*/
void
test2 (void)
{
{
a = 10;
}
+/* { dg-final { scan-assembler "test3:.*la\.global\t.*\_\_tls\_get\_addr" { target tls_native } } } */
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-mabi=lp64d -O0 -fno-pic -fno-plt -mno-explicit-relocs -mtls-dialect=trad -mcmodel=medium" } */
-/* { dg-final { scan-assembler "test:.*la\.global\t.*g\n\tjirl" } } */
-/* { dg-final { scan-assembler "test1:.*la\.local\t.*f\n\tjirl" } } */
-/* { dg-final { scan-assembler "test2:.*la\.local\t.*l\n\tjirl" } } */
-/* { dg-final { scan-assembler "test3:.*la\.global\t.*\_\_tls\_get\_addr" { target tls_native } } } */
-
-extern void g (void);
-void
-f (void)
-{}
-
-static void
-l (void)
-{}
-
-void
-test (void)
-{
- g ();
-}
-
-void
-test1 (void)
-{
- f ();
-}
-
-void
-test2 (void)
-{
- l ();
-}
-
-__attribute__ ((tls_model ("global-dynamic"))) __thread int a;
-
-void
-test3 (void)
-{
- a = 10;
-}
/* { dg-do compile } */
-/* { dg-options "-march=loongarch64 -mabi=lp64d -O2 -mcmodel=extreme -mtls-dialect=trad -fno-plt -mexplicit-relocs=none" } */
-/* { dg-final { scan-assembler "test_le:.*la.tls.le\t\\\$r\[0-9\]+,\\\.L" { target tls_native } } } */
-/* { dg-final { scan-assembler "test_ie:.*la.tls.ie\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,\\\.L" { target tls_native } } } */
-/* { dg-final { scan-assembler "test_ld:.*la.tls.ld\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,\\\.L.*la.global\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,__tls_get_addr" { target tls_native } } } */
-/* { dg-final { scan-assembler "test_le:.*la.tls.gd\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,\\\.L.*la.global\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,__tls_get_addr" { target tls_native } } } */
+/* { dg-options "-march=loongarch64 -mabi=lp64d -O2 -mcmodel=extreme -mtls-dialect=trad -fno-plt -mexplicit-relocs=none -fPIC" } */
+/* { dg-final { scan-assembler "test_le:.*la.tls.le\t\\\$r\[0-9\]+,c" { target tls_native } } } */
+/* { dg-final { scan-assembler "test_ie:.*la.tls.ie\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,d" { target tls_native } } } */
+/* { dg-final { scan-assembler "test_ld:.*la.tls.ld\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,e.*la.global\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,__tls_get_addr" { target tls_native } } } */
+/* { dg-final { scan-assembler "test_le:.*la.tls.gd\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,f.*la.global\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,__tls_get_addr" { target tls_native } } } */
__thread int c __attribute__ ((tls_model ("local-exec")));
__thread int d __attribute__ ((tls_model ("initial-exec")));
/* { dg-do compile } */
-/* { dg-options "-O0 -fno-plt -mcmodel=normal -mtls-dialect=trad -mexplicit-relocs" } */
+/* { dg-options "-O0 -fno-plt -mcmodel=normal -mtls-dialect=trad -mexplicit-relocs -fPIC" } */
/* { dg-final { scan-assembler "pcalau12i\t.*%got_pc_hi20\\(__tls_get_addr\\)\n\tld\.d.*%got_pc_lo12\\(__tls_get_addr\\)" { target tls_native } } } */
__attribute__ ((tls_model ("global-dynamic"))) __thread int a;