detect arm half (#66)
This commit is contained in:
parent
b42485d56e
commit
e6366ea640
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@ -182,4 +182,4 @@ jobs:
|
||||
- name: build-test
|
||||
run: |
|
||||
docker run -u root --rm -v $(pwd):/${{ github.workspace }} -w ${{ github.workspace }} --platform linux/${{ matrix.arch }} debian:unstable-slim \
|
||||
/bin/bash -c "apt update && apt install -y build-essential && gcc main.c -o ruapu && ./ruapu"
|
||||
/bin/bash -c "apt update && apt install -y gcc libc6-dev && gcc main.c -o ruapu && ./ruapu"
|
||||
|
@ -564,7 +564,7 @@ _`fma4` on zen1, ISA in hypervisor, etc._
|
||||
|CPU|ISA|
|
||||
|:---:|---|
|
||||
|x86|`mmx` `sse` `sse2` `sse3` `ssse3` `sse41` `sse42` `sse4a` `xop` `avx` `f16c` `fma` `fma4` `avx2` `avx512f` `avx512bw` `avx512cd` `avx512dq` `avx512vl` `avx512vnni` `avx512bf16` `avx512ifma` `avx512vbmi` `avx512vbmi2` `avx512fp16` `avx512er` `avx5124fmaps` `avx5124vnniw` `avxvnni` `avxvnniint8` `avxifma`|
|
||||
|arm|`edsp` `neon` `vfpv4` `idiv`|
|
||||
|arm|`half` `edsp` `neon` `vfpv4` `idiv`|
|
||||
|aarch64|`neon` `vfpv4` `cpuid` `asimdrdm` `asimdhp` `asimddp` `asimdfhm` `bf16` `i8mm` `mte` `sve` `sve2` `svebf16` `svei8mm` `svef32mm` `pmull` `crc32` `aes` `sha1` `sha2` `sha3` `sha512` `sm3` `sm4` `amx`|
|
||||
|mips|`msa`|
|
||||
|powerpc|`vsx`|
|
||||
|
1
main.c
1
main.c
@ -76,6 +76,7 @@ int main()
|
||||
PRINT_ISA_SUPPORT(amx)
|
||||
|
||||
#elif __arm__ || defined(_M_ARM)
|
||||
PRINT_ISA_SUPPORT(half)
|
||||
PRINT_ISA_SUPPORT(edsp)
|
||||
PRINT_ISA_SUPPORT(neon)
|
||||
PRINT_ISA_SUPPORT(vfpv4)
|
||||
|
3
ruapu.h
3
ruapu.h
@ -243,11 +243,13 @@ RUAPU_INSTCODE(amx, 0x00201220) // amx setup
|
||||
|
||||
#elif __arm__ || defined(_M_ARM)
|
||||
#if __thumb__
|
||||
RUAPU_INSTCODE(half, 0xf8bd, 0x0000) // ldrh r0,[sp]
|
||||
RUAPU_INSTCODE(edsp, 0xfb20, 0x0000) // smlad r0,r0,r0,r0
|
||||
RUAPU_INSTCODE(neon, 0xef00, 0x0d40) // vadd.f32 q0,q0,q0
|
||||
RUAPU_INSTCODE(vfpv4, 0xeea0, 0x0a00) // vfma.f32 s0,s0,s0
|
||||
RUAPU_INSTCODE(idiv, 0x2003, 0xfb90, 0xf0f0) // movs r0,#3 + sdiv r0,r0,r0
|
||||
#else
|
||||
RUAPU_INSTCODE(half, 0xe1dd00b0) // ldrh r0,[sp]
|
||||
RUAPU_INSTCODE(edsp, 0xe7000010) // smlad r0,r0,r0,r0
|
||||
RUAPU_INSTCODE(neon, 0xf2000d40) // vadd.f32 q0,q0,q0
|
||||
RUAPU_INSTCODE(vfpv4, 0xeea00a00) // vfma.f32 s0,s0,s0
|
||||
@ -358,6 +360,7 @@ RUAPU_ISAENTRY(sm4)
|
||||
RUAPU_ISAENTRY(amx)
|
||||
|
||||
#elif __arm__ || defined(_M_ARM)
|
||||
RUAPU_ISAENTRY(half)
|
||||
RUAPU_ISAENTRY(edsp)
|
||||
RUAPU_ISAENTRY(neon)
|
||||
RUAPU_ISAENTRY(vfpv4)
|
||||
|
Loading…
Reference in New Issue
Block a user