test(asm): seed the riscv64 and loong64 assemble fuzz targets

Assisted-by: GLM 5.3
This commit is contained in:
petrbalvin committed 2026-10-07 13:51:02 +02:00
1 parent b9dfb48d79
commit 965b33e5b0
11 files changed
+1288

No files matched your search

+177
View File
@@ -0,0 +1,177 @@
// Copyright (c) 2026 Petr Balvín <opensource@petrbalvin.org> (https://petrbalvin.org)
// SPDX-License-Identifier: BSD-3-Clause
// Seed corpus for FuzzAssembleRISCV64: branches over their offset range, the
// jumps and calls, the system instructions, the atomics with the LR/SC pair,
// the FP arithmetic, compare, conversion and fused multiply-add families in
// every width including quad.
#include "textflag.h"
TEXT ·branches(SB), NOSPLIT, $0
BEQ X5, X6, b1
BNE X5, X6, b2
BLT X5, X6, b1
BGE X5, X6, b2
BLTU X5, X6, b1
BGEU X5, X6, b2
BGT X6, X5, b1
BLE X6, X5, b2
BGTU X6, X5, b1
BLEU X6, X5, b2
b1:
ADDI $1, X5, X5
b2:
ADDI $-1, X6, X6
BEQ X5, X6, b1
RET
TEXT ·farBranch(SB), NOSPLIT, $0
BEQ X5, X6, far
SLTI $2047, X5, X6
BEQ X5, X6, far
far:
SLTIU $2047, X5, X6
BGE X5, X6, far
RET
TEXT ·jumps(SB), NOSPLIT, $0
JAL X1, j1
j1:
JALR X0, (X1)
JALR X1, 0(X5)
JMP j2
j2:
JMP (X5)
CALL (X5)
JMP -3(PC)
CALL runtime·morestack_noctxt(SB)
RET
TEXT ·system(SB), NOSPLIT, $0
FENCE
FENCE.TSO
PAUSE
ECALL
EBREAK
RET
TEXT ·atomics(SB), NOSPLIT, $0
AMOSWAPW X5, (X6), X7
AMOSWAPD X5, (X6), X7
AMOADDW X5, (X6), X7
AMOADDD X5, (X6), X7
AMOANDW X5, (X6), X7
AMOORW X5, (X6), X7
AMOXORW X5, (X6), X7
AMOMINW X5, (X6), X7
AMOMAXW X5, (X6), X7
AMOMINUW X5, (X6), X7
AMOMAXUW X5, (X6), X7
AMOMIND X5, (X6), X7
AMOMAXD X5, (X6), X7
AMOMINUD X5, (X6), X7
AMOMAXUD X5, (X6), X7
LRW (X6), X7
LRD (X6), X7
SCW X5, (X6), X7
SCD X5, (X6), X7
RET
TEXT ·fpArith(SB), NOSPLIT, $0
FADDS F1, F2, F3
FSUBS F1, F2, F3
FMULS F1, F2, F3
FDIVS F1, F2, F3
FADDD F1, F2, F3
FSUBD F1, F2, F3
FMULD F1, F2, F3
FDIVD F1, F2, F3
FADDQ F1, F2, F3
FSUBQ F1, F2, F3
FMULQ F1, F2, F3
FDIVQ F1, F2, F3
FSQRTS F1, F2
FSQRTD F1, F2
FSQRTQ F1, F2
FMINS F1, F2, F3
FMAXS F1, F2, F3
FMIND F1, F2, F3
FMAXD F1, F2, F3
FMINQ F1, F2, F3
FMAXQ F1, F2, F3
RET
TEXT ·fpFma(SB), NOSPLIT, $0
FMADDS F1, F2, F3, F4
FMSUBS F1, F2, F3, F4
FNMSUBS F1, F2, F3, F4
FNMADDS F1, F2, F3, F4
FMADDD F1, F2, F3, F4
FMSUBD F1, F2, F3, F4
FNMSUBD F1, F2, F3, F4
FNMADDD F1, F2, F3, F4
FMADDQ F1, F2, F3, F4
FMSUBQ F1, F2, F3, F4
FNMSUBQ F1, F2, F3, F4
FNMADDQ F1, F2, F3, F4
RET
TEXT ·fpCvt(SB), NOSPLIT, $0
FCVTWS F1, X5
FCVTWUS F1, X5
FCVTLS F1, X5
FCVTLUS F1, X5
FCVTWD F1, X5
FCVTWUD F1, X5
FCVTLD F1, X5
FCVTLUD F1, X5
FCVTSW X5, F1
FCVTSWU X5, F1
FCVTSL X5, F1
FCVTSLU X5, F1
FCVTDW X5, F1
FCVTDWU X5, F1
FCVTDL X5, F1
FCVTDLU X5, F1
FCVTSD F1, F2
FCVTDS F1, F2
FCVTSQ F1, F2
FCVTDQ F1, F2
FCVTQS F1, F2
FCVTQD F1, F2
FCVTWQ F1, X5
FCVTLQ F1, X5
FCVTQW X5, F1
FCVTQL X5, F1
FCLASSS F1, X5
FCLASSD F1, X5
FCLASSQ F1, X5
FMVXD F1, X5
FMVDX X5, F1
FMVXW F1, X5
FMVWX X5, F1
RET
TEXT ·fpSign(SB), NOSPLIT, $0
FSGNJS F1, F0, F2
FSGNJNS F1, F0, F2
FSGNJXS F1, F0, F2
FSGNJD F1, F0, F2
FSGNJND F1, F0, F2
FSGNJXD F1, F0, F2
FLTS F1, F2, X5
FLES F1, F2, X5
FEQS F1, F2, X5
FLTD F1, F2, X5
FLED F1, F2, X5
FEQD F1, F2, X5
FLTQ F1, F2, X5
FLEQ F1, F2, X5
FEQQ F1, F2, X5
RET