Skip to content
This repository was archived by the owner on May 7, 2024. It is now read-only.

Commit 932a619

Browse files
committed
rvp: fix wrong format in maddr32 and msubr32
1 parent da54bac commit 932a619

File tree

4 files changed

+27
-4
lines changed

4 files changed

+27
-4
lines changed

gcc/config/riscv/riscv-builtins-rvp.def

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,8 @@ DIRECT_BUILTIN_NO_PREFIX (kwmmul_64, kwmmul, RISCV_IXLEN_FTYPE_IXLEN_IXLEN, zpn6
305305
DIRECT_BUILTIN_NO_PREFIX (kwmmul64_round, kwmmul_u, RISCV_IXLEN_FTYPE_IXLEN_IXLEN, zpn64),
306306
DIRECT_BUILTIN_NO_PREFIX (kwmmul_64, v_kwmmul, RISCV_V2SI_FTYPE_V2SI_V2SI, zpn64),
307307
DIRECT_BUILTIN_NO_PREFIX (kwmmul64_round, v_kwmmul_u, RISCV_V2SI_FTYPE_V2SI_V2SI, zpn64),
308-
DIRECT_BUILTIN_NO_PREFIX (maddr32, maddr32, RISCV_SI_FTYPE_SI_SI, zpn),
309-
DIRECT_BUILTIN_NO_PREFIX (msubr32, msubr32, RISCV_SI_FTYPE_SI_SI, zpn),
308+
DIRECT_BUILTIN_NO_PREFIX (maddr32, maddr32, RISCV_SI_FTYPE_SI_SI_SI, zpn),
309+
DIRECT_BUILTIN_NO_PREFIX (msubr32, msubr32, RISCV_SI_FTYPE_SI_SI_SI, zpn),
310310
DIRECT_BUILTIN_NO_PREFIX (pbsadsi, pbsad, RISCV_UIXLEN_FTYPE_UIXLEN_UIXLEN, zpn32),
311311
DIRECT_BUILTIN_NO_PREFIX (pbsadasi, pbsada, RISCV_UIXLEN_FTYPE_UIXLEN_UIXLEN_UIXLEN, zpn32),
312312
DIRECT_BUILTIN_NO_PREFIX (pbsadsi, v_pbsad, RISCV_USI_FTYPE_UV4QI_UV4QI, zpn32),

gcc/config/riscv/riscv-ftypes.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ DEF_RISCV_FTYPE (3, (IXLEN, IXLEN, UIXLEN, UIXLEN))
136136
DEF_RISCV_FTYPE (3, (IXLEN, IXLEN, V2HI, V2HI))
137137
DEF_RISCV_FTYPE (3, (IXLEN, IXLEN, V2SI, V2SI))
138138
DEF_RISCV_FTYPE (3, (SI, IXLEN, V2HI, V2HI))
139+
DEF_RISCV_FTYPE (3, (SI, SI, SI, SI))
139140
DEF_RISCV_FTYPE (3, (SI, SI, SI, V2HI))
140141
DEF_RISCV_FTYPE (3, (SI, SI, USI, USI))
141142
DEF_RISCV_FTYPE (3, (SI, SI, V2HI, V2HI))

gcc/config/riscv/rvp_intrinsic.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,8 @@ CREATE_RVP_INTRINSIC (int32_t, ksubh, int32_t, int32_t)
196196
CREATE_RVP_INTRINSIC (int32_t, ksubw, int32_t, int32_t)
197197
CREATE_RVP_INTRINSIC (intXLEN_t, kwmmul, intXLEN_t, intXLEN_t)
198198
CREATE_RVP_INTRINSIC (intXLEN_t, kwmmul_u, intXLEN_t, intXLEN_t)
199-
CREATE_RVP_INTRINSIC (int32_t, maddr32, int32_t, int32_t)
200-
CREATE_RVP_INTRINSIC (int32_t, msubr32, int32_t, int32_t)
199+
CREATE_RVP_INTRINSIC (int32_t, maddr32, int32_t, int32_t, int32_t)
200+
CREATE_RVP_INTRINSIC (int32_t, msubr32, int32_t, int32_t, int32_t)
201201
CREATE_RVP_INTRINSIC (uintXLEN_t, pbsad, uintXLEN_t, uintXLEN_t)
202202
CREATE_RVP_INTRINSIC (uintXLEN_t, pbsada, uintXLEN_t, uintXLEN_t, uintXLEN_t)
203203
CREATE_RVP_INTRINSIC (uintXLEN_t, pkbt16, uintXLEN_t, uintXLEN_t)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/* This is a test program for maddr32, msubr32 instruction. */
2+
/* { dg-do compile { target riscv32*-*-* } } */
3+
/* { dg-options "-march=rv32gc_zpn -mabi=ilp32d -O0" } */
4+
5+
#include <rvp_intrinsic.h>
6+
#include <stdlib.h>
7+
8+
static __attribute__ ((noinline))
9+
int32_t madd (int32_t ra, int32_t rb, int32_t rc)
10+
{
11+
return __rv_maddr32 (ra, rb, rc);
12+
}
13+
14+
static __attribute__ ((noinline))
15+
int32_t msub (int32_t ra, int32_t rb, int32_t rc)
16+
{
17+
return __rv_msubr32 (ra, rb, rc);
18+
}
19+
20+
/* { dg-final { scan-assembler-times "msubr32" 1 } } */
21+
/* { dg-final { scan-assembler-times "maddr32" 1 } } */
22+
/* { dg-final { scan-assembler-times "builtin_riscv" 0 } } */

0 commit comments

Comments
 (0)