RISC-V Port: gcc/testsuite
authorKito Cheng <kito.cheng@gmail.com>
Mon, 6 Feb 2017 21:39:03 +0000 (21:39 +0000)
committerPalmer Dabbelt <palmer@gcc.gnu.org>
Mon, 6 Feb 2017 21:39:03 +0000 (21:39 +0000)
gcc/testsuite/ChangeLog:

2017-02-06  Kito Cheng  <kito.cheng@gmail.com>

        * lib/target-supports.exp: Define the RISC-V target.
        * g++.dg/cpp0x/constexpr-rom.C: Skip on RISC-V
        * gcc.dg/builtin-apply2.c: Likewise.
        * gcc.dg/ifcvt-4.c: Likewise.
        * gcc.dg/loop-8.c: Likewise.
        * gcc.dg/sibcall-10.c: Likewise.
        * gcc.dg/sibcall-9.c: Likewise.
        * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise.
        * gcc.dg/tree-ssa/20040204-1.c: Likewise.
        * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Likewise.
        * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
        * gcc.c-torture/execute/20101011-1.c: Define DO_TEST on RISC-V.
        * gcc.dg/20020312-2.c: Don't define PIC_REG on RISC-V.
        * gcc.dg/stack-usage-1.c: Define SIZE on RISC-V.

From-SVN: r245228

15 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/constexpr-rom.C
gcc/testsuite/gcc.c-torture/execute/20101011-1.c
gcc/testsuite/gcc.dg/20020312-2.c
gcc/testsuite/gcc.dg/builtin-apply2.c
gcc/testsuite/gcc.dg/ifcvt-4.c
gcc/testsuite/gcc.dg/loop-8.c
gcc/testsuite/gcc.dg/sibcall-10.c
gcc/testsuite/gcc.dg/sibcall-9.c
gcc/testsuite/gcc.dg/stack-usage-1.c
gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c
gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-2.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c
gcc/testsuite/lib/target-supports.exp

index 95c80a0d7adeda25d8e62814340033e920ec9855..57fe2417997e747066757e27e57e8a3980e8c51f 100644 (file)
@@ -1,3 +1,20 @@
+2017-02-06  Kito Cheng  <kito.cheng@gmail.com>
+
+       * lib/target-supports.exp: Define the RISC-V target.
+       * g++.dg/cpp0x/constexpr-rom.C: Skip on RISC-V
+       * gcc.dg/builtin-apply2.c: Likewise.
+       * gcc.dg/ifcvt-4.c: Likewise.
+       * gcc.dg/loop-8.c: Likewise.
+       * gcc.dg/sibcall-10.c: Likewise.
+       * gcc.dg/sibcall-9.c: Likewise.
+       * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise.
+       * gcc.dg/tree-ssa/20040204-1.c: Likewise.
+       * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Likewise.
+       * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
+       * gcc.c-torture/execute/20101011-1.c: Define DO_TEST on RISC-V.
+       * gcc.dg/20020312-2.c: Don't define PIC_REG on RISC-V.
+       * gcc.dg/stack-usage-1.c: Define SIZE on RISC-V.
+
 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        PR target/66144
index 80a571aeb45e8c7cc6ebc1ad3dd752aa48f64c35..2e0ef685f36fa0482b800a0078200d015fe35d1c 100644 (file)
@@ -2,7 +2,7 @@
 // { dg-do compile { target c++11 } }
 // { dg-additional-options -G0 { target { { alpha*-*-* frv*-*-* ia64-*-* lm32*-*-* m32r*-*-* microblaze*-*-* mips*-*-* nios2-*-* powerpc*-*-* rs6000*-*-* } && { ! { *-*-darwin* *-*-aix* alpha*-*-*vms* } } } } }
 // { dg-final { scan-assembler "\\.rdata" { target mips*-*-* } } }
-// { dg-final { scan-assembler "rodata" { target { { *-*-linux-gnu *-*-gnu* *-*-elf } && { ! mips*-*-* } } } } }
+// { dg-final { scan-assembler "rodata" { target { { *-*-linux-gnu *-*-gnu* *-*-elf } && { ! { mips*-*-* riscv*-*-* } } } } } }
 
 struct Data
 {
index 744763f26622b6ead4152d5e9c3cadd469fd03d7..899a401dd7567a17385140c7dc85c0b9941dd5bc 100644 (file)
@@ -6,6 +6,9 @@
 #elif defined (__powerpc__) || defined (__PPC__) || defined (__ppc__) || defined (__POWERPC__) || defined (__ppc)
   /* On PPC division by zero does not trap.  */
 # define DO_TEST 0
+#elif defined (__riscv)
+  /* On RISC-V division by zero does not trap.  */
+# define DO_TEST 0
 #elif defined (__SPU__)
   /* On SPU division by zero does not trap.  */
 # define DO_TEST 0
index 5fce50dfaf20eeff622dfc40d73d5a854d20bf04..f5929e0b05711e8379a0f4f6528e9b75536f8563 100644 (file)
@@ -67,6 +67,8 @@ extern void abort (void);
 # else
 #  define PIC_REG  "30"
 # endif
+#elif defined(__riscv)
+/* No pic register.  */
 #elif defined(__RX__)
 /* No pic register.  */
 #elif defined(__s390__)
index b6cbe39f4db6e804db9768de51942804279e9fc5..ad61d3b679219a521964f25327a9d37c37f5c0dc 100644 (file)
@@ -1,6 +1,7 @@
 /* { dg-do run } */
 /* { dg-require-effective-target untyped_assembly } */
 /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { "avr-*-* nds32*-*-*" } { "*" } { "" } } */
+/* { dg-skip-if "Variadic funcs use different argument passing from normal funcs." { "riscv*-*-*" } { "*" } { "" } } */
 /* { dg-skip-if "Variadic funcs use Base AAPCS.  Normal funcs use VFP variant." { arm*-*-* && arm_hf_eabi } { "*" } { "" } } */
 
 /* PR target/12503 */
index 0d1671c302a09db3638e4a85dc826c3a9e4a0dc8..466ad15160d813a44f954bcf434970bf598dd23f 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-options "-fdump-rtl-ce1 -O2 --param max-rtl-if-conversion-insns=3 --param max-rtl-if-conversion-unpredictable-cost=100" } */
 /* { dg-additional-options "-misel" { target { powerpc*-*-* } } } */
-/* { dg-skip-if "Multiple set if-conversion not guaranteed on all subtargets" { "arm*-*-* hppa*64*-*-* visium-*-*" } }  */
+/* { dg-skip-if "Multiple set if-conversion not guaranteed on all subtargets" { "arm*-*-* hppa*64*-*-* visium-*-*" riscv*-*-* } }  */
 
 typedef int word __attribute__((mode(word)));
 
index de9ee89d8ef32349a67f6df4ac06fee0ec838403..5fcab7b077bb640665d3cfbffc82be4e125f34f4 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O1 -fdump-rtl-loop2_invariant" } */
-/* { dg-skip-if "unexpected IV" { "hppa*-*-* mips*-*-* visium-*-* powerpc*-*-*" } { "*" } { "" } } */
+/* { dg-skip-if "unexpected IV" { "hppa*-*-* mips*-*-* visium-*-* powerpc*-*-* riscv*-*-*" } { "*" } { "" } } */
 
 void
 f (int *a, int *b)
index d98b43a91b870fbca10ab4cde7292bb4a71e835f..d89909a1fdcf59be23f11827a21d0a66dcc4215f 100644 (file)
@@ -8,6 +8,8 @@
 /* { dg-do run { xfail { { cris-*-* crisv32-*-* h8300-*-* hppa*64*-*-* m32r-*-* mcore-*-* mn10300-*-* msp430*-*-* nds32*-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa*-*-* } || { arm*-*-* && { ! arm32 } } } } } */
 /* -mlongcall disables sibcall patterns.  */
 /* { dg-skip-if "" { powerpc*-*-* } { "-mlongcall" } { "" } } */
+/* -msave-restore disables sibcall patterns.  */
+/* { dg-skip-if "" { riscv*-*-* } { "-msave-restore" } { "" } } */
 /* { dg-options "-O2 -foptimize-sibling-calls" } */
 
 /* The option -foptimize-sibling-calls is the default, but serves as
index 34e70531e4f416bcca34a3dcae3d46b85d044652..8e309522e5328823ce218ec71b1e0ae1c55afbca 100644 (file)
@@ -8,6 +8,8 @@
 /* { dg-do run { xfail { { cris-*-* crisv32-*-* h8300-*-* hppa*64*-*-* m32r-*-* mcore-*-* mn10300-*-* msp430*-*-* nds32*-*-* nvptx-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa*-*-* } || { arm*-*-* && { ! arm32 } } } } } */
 /* -mlongcall disables sibcall patterns.  */
 /* { dg-skip-if "" { powerpc*-*-* } { "-mlongcall" } { "" } } */
+/* -msave-restore disables sibcall patterns.  */
+/* { dg-skip-if "" { riscv*-*-* } { "-msave-restore" } { "" } } */
 /* { dg-options "-O2 -foptimize-sibling-calls" } */
 
 /* The option -foptimize-sibling-calls is the default, but serves as
index bdc56565d97a718b13c2ae338c701a8460d33ff4..f10ba2061e7691137fe7e40124c8bbf659129d5d 100644 (file)
@@ -63,6 +63,8 @@
 #  else
 #    define SIZE 240
 #  endif
+#elif defined (__riscv)
+#  define SIZE 240
 #elif defined (__AVR__)
 #if defined (__AVR_3_BYTE_PC__ )
 #  define SIZE 251 /* 256 - 2 bytes for Y - 3 bytes for return address */
index ffd865b3717af27906dd9175254755783d64667f..eb9d3a9c22c03a941545e804e409adacaa4d1bec 100644 (file)
@@ -9,7 +9,7 @@
 /* arm_hf_eabi: Variadic funcs use Base AAPCS.  Normal funcs use VFP variant.
    avr: Variadic funcs don't pass arguments in registers, while normal funcs
         do.  */
-/* { dg-skip-if "Variadic funcs use different argument passing from normal funcs" { arm_hf_eabi || { avr-*-* } } "*" "" } */
+/* { dg-skip-if "Variadic funcs use different argument passing from normal funcs" { arm_hf_eabi || { avr-*-* } || { riscv*-*-* } } "*" "" } */
 /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { nds32*-*-* } "*" "" } */
 /* { dg-require-effective-target untyped_assembly } */
    
index f7b5dfa100de1c626de12a2f11bca8f69b91582d..a1237cf839baa6f3c1c700051c193fef5c443fb6 100644 (file)
@@ -33,4 +33,4 @@ void test55 (int x, int y)
    that the && should be emitted (based on BRANCH_COST).  Fix this
    by teaching dom to look through && and register all components
    as true.  */
-/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail { ! "alpha*-*-* arm*-*-* aarch64*-*-* powerpc*-*-* cris-*-* crisv32-*-* hppa*-*-* i?86-*-* mmix-*-* mips*-*-* m68k*-*-* moxie-*-* nds32*-*-* s390*-*-* sh*-*-* sparc*-*-* spu-*-* visium-*-* x86_64-*-*" } } } } */
+/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail { ! "alpha*-*-* arm*-*-* aarch64*-*-* powerpc*-*-* cris-*-* crisv32-*-* hppa*-*-* i?86-*-* mmix-*-* mips*-*-* m68k*-*-* moxie-*-* nds32*-*-* s390*-*-* sh*-*-* sparc*-*-* spu-*-* visium-*-* x86_64-*-* riscv*-*-*" } } } } */
index 1a4bfe65d974f7b3ce7e464f572dc20f368c15a5..d2600db160a7afbff675c112ae5acc1dac35b241 100644 (file)
@@ -25,4 +25,4 @@ foo ()
    but the loop reads only one element at a time, and DOM cannot resolve these.
    The same happens on powerpc depending on the SIMD support available.  */
 
-/* { dg-final { scan-tree-dump "return 28;" "optimized" { xfail { { alpha*-*-* hppa*64*-*-* powerpc64*-*-* } || { sparc*-*-* && lp64 } } } } } */
+/* { dg-final { scan-tree-dump "return 28;" "optimized" { xfail { { alpha*-*-* hppa*64*-*-* powerpc64*-*-* } || { { sparc*-*-* && lp64 } || { riscv*-*-* && lp64 } } } } } } */
index a287dad07f6a6885a14ea3334e3bd9b741da0d98..eda7118226334fd198fcafab22c38b827fe4115e 100644 (file)
@@ -18,4 +18,4 @@ foo (int a, int b)
   return aa + bb;
 }
 
-/* { dg-final { scan-tree-dump "Replaced \\\(int\\\) aa_.*with a_" "fre1" } } */
+/* { dg-final { scan-tree-dump "Replaced \\\(int\\\) aa_.*with a_" "fre1" { xfail { riscv*-*-* && lp64 } } } } */
index 7a260085405c850ef4042faffc4ad71fdb25c830..2766af4f6794402cf541afe645fe95c3e3f4a2b5 100644 (file)
@@ -7971,6 +7971,7 @@ proc check_effective_target_logical_op_short_circuit {} {
         || [istarget s390*-*-*]
         || [istarget powerpc*-*-*]
         || [istarget nios2*-*-*]
+        || [istarget riscv*-*-*]
         || [istarget visium-*-*]
         || [check_effective_target_arm_cortex_m] } {
        return 1