/* { dg-do compile } */
/* { dg-require-effective-target rv32} */
-/* { dg-options "-march=rv32gc_zicbom_zicbop_zicboz -mabi=ilp32" } */
+/* { dg-options "-march=rv32gc_zicbom_zicbop_zicboz -mabi=ilp32 -std=gnu17" } */
#include "riscv_cmo.h"
/* { dg-do compile } */
/* { dg-require-effective-target rv64 } */
-/* { dg-options "-march=rv64gc_zicbom_zicbop_zicboz -mabi=lp64d" } */
+/* { dg-options "-march=rv64gc_zicbom_zicbop_zicboz -mabi=lp64d -std=gnu17" } */
#include "riscv_cmo.h"
/* { dg-do compile } */
-/* { dg-options "-fstrict-aliasing" } */
+/* { dg-options "-fstrict-aliasing -std=gnu17" } */
/* { dg-skip-if "" { *-*-* } { "-O0" } } */
typedef struct {
/* { dg-do compile } */
/* { dg-options "-march=rv64gcv -mabi=lp64d -Wno-int-conversion -Wno-implicit-function -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Ofast -ftree-vectorize" } */
-int d ();
typedef struct
{
int b;
} c;
+int d (c *);
int
e (char *f, long g)
{
/* { dg-do compile } */
-/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-vect-cost-model" } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32d -O3 -fno-vect-cost-model -std=gnu17" } */
struct a {
int b;
/* { dg-do compile } */
-/* { dg-options "-mrvv-vector-bits=scalable -march=rv64gcv -mabi=lp64d -O3 -w" } */
+/* { dg-options "-mrvv-vector-bits=scalable -march=rv64gcv -mabi=lp64d -O3 -w -std=gnu17" } */
/* { dg-skip-if "" { *-*-* } { "-flto" } } */
#include <riscv_vector.h>
int
-f (a, b)
- unsigned char a;
- unsigned long b;
+f (unsigned char a, unsigned long b)
{
long i, j, p, q, r, s;
/* { dg-options { -march=rv64gcv -mabi=lp64d -O2 } } */
/* { dg-skip-if "" { *-*-* } { "-O0" "O1" "-Og" "-Os" "-Oz" } } */
-int a() {
+int a(char x[]) {
char b[4096];
if (a(b))
a(b);
** ...
*/
/* { dg-final { scan-assembler ".option arch, rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0_zcd1p0_zba1p0" } } */
-long foo () __attribute__((target("arch=rv64gc_zba")));
+long foo (long a, long b) __attribute__((target("arch=rv64gc_zba")));
long foo (long a, long b)
{
return a + (b * 2);
** ...
*/
/* { dg-final { scan-assembler ".option arch, rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0_zcd1p0_zba1p0" } } */
-long foo () __attribute__((target("arch=+zba")));
+long foo (long a, long b) __attribute__((target("arch=+zba")));
long foo (long a, long b)
{
return a + (b * 2);
** ...
*/
/* { dg-final { scan-assembler ".option arch, rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0" } } */
-long foo () __attribute__((target("arch=rv64gc")));
+long foo (long a, long b) __attribute__((target("arch=rv64gc")));
long foo (long a, long b)
{
return a + (b * 2);
** ...
*/
/* { dg-final { scan-assembler ".option arch, rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0" } } */
-long foo () __attribute__((target("cpu=sifive-u74")));
+long foo (long a, long b) __attribute__((target("cpu=sifive-u74")));
long foo (long a, long b)
{
return a + (b * 2);
** sh1add\s*a0,a1,a0
** ...
*/
-long foo () __attribute__((target("cpu=sifive-u74;arch=rv64gc_zba")));
+long foo (long a, long b) __attribute__((target("cpu=sifive-u74;arch=rv64gc_zba")));
long foo (long a, long b)
{
return a + (b * 2);
** sh1add\s*a0,a1,a0
** ...
*/
-long foo ()
+long foo (long a, long b)
__attribute__((target("cpu=sifive-u74;tune=sifive-5-series;arch=rv64gc_zba")));
long foo (long a, long b)
{
** # tune = sifive-5-series
** ...
*/
-long foo () __attribute__((target("tune=sifive-5-series")));
+long foo (long a, long b) __attribute__((target("tune=sifive-5-series")));
long foo (long a, long b)
{
return a + (b * 2);
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
/* { dg-final { check-function-bodies "**" "" } } */
-long foo ()
+long foo (long a, long b)
__attribute__((target("arch=rv64gc_zbb")))
__attribute__((target("arch=rv64gc_zba")));
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
/* { dg-final { check-function-bodies "**" "" } } */
-long foo ()
+long foo (long a, long b)
__attribute__((target("cpu=sifive-e20")))
__attribute__((target("cpu=sifive-u74")));
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
/* { dg-final { check-function-bodies "**" "" } } */
-long foo ()
+long foo (long a, long b)
__attribute__((target("tune=rocket")))
__attribute__((target("tune=sifive-u74")));
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
/* { dg-final { check-function-bodies "**" "" } } */
-long foo ()
+long foo (long a, long b)
__attribute__((target("arch=rv64gc_zbb")));
-long foo ()
+long foo (long a, long b)
__attribute__((target("arch=rv64gc_zba")));
/*
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
/* { dg-final { check-function-bodies "**" "" } } */
-long foo ()
+long foo (long a, long b)
__attribute__((target("cpu=sifive-e20")));
-long foo ()
+long foo (long a, long b)
__attribute__((target("cpu=sifive-u74")));
/*
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
/* { dg-final { check-function-bodies "**" "" } } */
-long foo ()
+long foo (long a, long b)
__attribute__((target("tune=rocket")));
-long foo ()
+long foo (long a, long b)
__attribute__((target("tune=sifive-u74")));
/*
** ...
*/
/* { dg-final { scan-assembler ".option arch, rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0_zcd1p0_zba1p0" } } */
-long foo () __attribute__((target("arch=rv64gc_zba")));
+long foo (long a, long b) __attribute__((target("arch=rv64gc_zba")));
long foo (long a, long b)
{
return a + (b * 2);
** ...
*/
/* { dg-final { scan-assembler ".option arch, rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0_zcd1p0_xtheadba1p0" } } */
-long foo_th () __attribute__((target("arch=rv64gc_xtheadba")));
+long foo_th (long, long) __attribute__((target("arch=rv64gc_xtheadba")));
long foo_th (long a, long b)
{
return a + (b * 2);
** ...
*/
/* { dg-final { scan-assembler ".option arch, rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0_zcd1p0_zba1p0" } } */
-long foo () __attribute__((target("arch=rv64gc_zba")));
+long foo (long a, long b) __attribute__((target("arch=rv64gc_zba")));
long foo (long a, long b)
{
return a + (b * 2);
** ...
*/
/* { dg-final { scan-assembler ".option arch, rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0_zcd1p0_xtheadba1p0" } } */
-long foo_th () __attribute__((target("arch=+xtheadba")));
+long foo_th (long, long) __attribute__((target("arch=+xtheadba")));
long foo_th (long a, long b)
{
return a + (b * 2);
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target("arch=rv64gc_zba;;"))); /* { dg-error "malformed" } */
+long foo(long a, long b) __attribute__((target("arch=rv64gc_zba;;"))); /* { dg-error "malformed" } */
long foo(long a, long b){
return a + (b * 2);
}
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target("cpu=xyz-cpu"))); /* { dg-error "unknown CPU" } */
+long foo(long a, long b) __attribute__((target("cpu=xyz-cpu"))); /* { dg-error "unknown CPU" } */
long foo(long a, long b){
return a + (b * 2);
}
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target("tune=xyz-cpu"))); /* { dg-error "unknown TUNE" } */
+long foo(long a, long b) __attribute__((target("tune=xyz-cpu"))); /* { dg-error "unknown TUNE" } */
long foo(long a, long b){
return a + (b * 2);
}
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target(123))); /* { dg-error "argument not a string" } */
+long foo(long a, long b) __attribute__((target(123))); /* { dg-error "argument not a string" } */
long foo(long a, long b){
return a + (b * 2);
}
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target(""))); /* { dg-warning "empty string in attribute .target." } */
+long foo(long a, long b) __attribute__((target(""))); /* { dg-warning "empty string in attribute .target." } */
long foo(long a, long b){
return a + (b * 2);
}
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target("arch=*x"))); /* { dg-error "must start with \\+ or rv" } */
+long foo(long a, long b) __attribute__((target("arch=*x"))); /* { dg-error "must start with \\+ or rv" } */
long foo(long a, long b){
return a + (b * 2);
}
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target("arch=+zbb_zba"))); /* { dg-error "extension 'zbb_zba' starts with 'z' but is unsupported standard extension" } */
+long foo(long a, long b) __attribute__((target("arch=+zbb_zba"))); /* { dg-error "extension 'zbb_zba' starts with 'z' but is unsupported standard extension" } */
long foo(long a, long b){
return a + (b * 2);
}
/* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target("arch=rv64gc_zba;arch=rv64gc_zba"))); /* { dg-error "arch appears more than once" } */
+long foo(long a, long b) __attribute__((target("arch=rv64gc_zba;arch=rv64gc_zba"))); /* { dg-error "arch appears more than once" } */
long foo(long a, long b){
return a + (b * 2);
}
/* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target("cpu=sifive-u74;cpu=sifive-u74"))); /* { dg-error "cpu appears more than once" } */
+long foo(long a, long b) __attribute__((target("cpu=sifive-u74;cpu=sifive-u74"))); /* { dg-error "cpu appears more than once" } */
long foo(long a, long b){
return a + (b * 2);
}
/* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
/* { dg-options "-march=rv64gc -O2 -mabi=lp64" } */
-long foo() __attribute__((target("tune=sifive-u74;tune=sifive-u74"))); /* { dg-error "tune appears more than once" } */
+long foo(long a, long b) __attribute__((target("tune=sifive-u74;tune=sifive-u74"))); /* { dg-error "tune appears more than once" } */
long foo(long a, long b){
return a + (b * 2);
}