{"id":15060301,"url":"https://github.com/vectorchief/unisimd-assembler","last_synced_at":"2025-04-07T15:10:40.394Z","repository":{"id":9563684,"uuid":"11474584","full_name":"VectorChief/UniSIMD-assembler","owner":"VectorChief","description":"SIMD macro assembler unified for ARM, MIPS, PPC and x86","archived":false,"fork":false,"pushed_at":"2024-11-20T19:47:01.000Z","size":9702,"stargazers_count":89,"open_issues_count":0,"forks_count":8,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-31T14:11:19.469Z","etag":null,"topics":["aarch64","altivec","armv7","assembler","avx","avx2","avx512","mips","msa","neon","powerpc","simd","spmd","sse","sse2","sve","vmx","vsx","x86","x86-64"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VectorChief.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-07-17T11:37:09.000Z","updated_at":"2025-03-07T01:41:17.000Z","dependencies_parsed_at":"2024-12-25T01:45:24.955Z","dependency_job_id":null,"html_url":"https://github.com/VectorChief/UniSIMD-assembler","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VectorChief%2FUniSIMD-assembler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VectorChief%2FUniSIMD-assembler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VectorChief%2FUniSIMD-assembler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VectorChief%2FUniSIMD-assembler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VectorChief","download_url":"https://codeload.github.com/VectorChief/UniSIMD-assembler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247675607,"owners_count":20977378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aarch64","altivec","armv7","assembler","avx","avx2","avx512","mips","msa","neon","powerpc","simd","spmd","sse","sse2","sve","vmx","vsx","x86","x86-64"],"created_at":"2024-09-24T22:56:34.325Z","updated_at":"2025-04-07T15:10:40.370Z","avatar_url":"https://github.com/VectorChief.png","language":"C","readme":"UniSIMD assembler is a high-level C/C++ macro assembler framework unified across\r\nARM, MIPS, POWER and x86 architectures. It establishes a subset of both BASE and\r\nSIMD instruction sets with clearly defined common API, so that application logic\r\ncan be written and maintained in one place without code replication.\r\nThe assembler itself isn't a separate tool, but rather a collection of C/C++\r\nheader files, which applications need to include directly in order to use.\r\n\r\nInitial documentation for the assembler is provided in core/config/rtdocs.h.\r\n\r\nAt present, Intel SSE/SSE2/SSE4 and AVX/AVX2/AVX-512 (32/64-bit x86 ISAs),\r\nARMv7 NEON/NEONv2, ARMv8 AArch32 and AArch64 NEON, SVE (32/64-bit ARM ISAs),\r\nMIPS 32/64-bit r5/r6 MSA and POWER 32/64-bit VMX/VSX (little/big-endian ISAs)\r\nare mostly implemented (w/ horizontal reductions and byte/half SIMD+BASE ops)\r\nalthough scalar improvements, wider SIMD vectors with zeroing/merging predicates\r\nin 3/4-operand instructions, cross-precision fp-converters on modern CPU targets\r\nare planned as extensions to current 2/3-operand SPMD-driven vertical SIMD ISA.\r\n\r\nThe project has a test framework for Linux/GCC/Clang and Windows/VC++/TDM64-GCC.\r\nSupport for macOS is provided via Command Line Tools with GCC and Clang options.\r\nInstructions for resolving dependencies and building the binaries\r\nfor supported platforms can be found in the accompanying INSTALL file.\r\n\r\nUniSIMD core features:\r\n - Unified, Universal, Portable, Compatible code\r\n - Explicit register allocation, predictable performance\r\n - Three register sets for code: 8, 16, 32 (free: 8, 15, 30)\r\n - High-level SIMD registers/ops as singles, pairs and quads\r\n - SIMD-aligned backend structures with offsets/factors\r\n - Vector-length agnostic vertical SIMD ISA, configurable\r\n - Simultaneous scalar + 128/256-bit + configurable SIMD ops\r\n - ISA implementation for fp16/fp128 (half/quad) SIMD ops\r\n - C/C++, Compute, SPMD on 4 major archs\r\n - Intel SSE/SSE2/SSE4 and AVX/AVX2/AVX-512\r\n - ARMv7 NEON/NEONv2, ARMv8 AArch32/AArch64 NEON, SVE\r\n - MIPS r5/r6 MSA (Warrior P5600, I6400/P6600)\r\n - POWER VMX/VSX (PowerPC G4/G5, POWER6/7/8/9)\r\n - CISC, RISC, CISC on RISC, little/big-endian ISA\r\n - Support for reg-reg, load/store, load-op instructions\r\n - Plain, indexed and scaled-indexed addressing modes\r\n - FMA3 support (native or higher-precision emulation)\r\n - 32/64-bit hybrid mode for native 64-bit ABI\r\n - 32/64-bit addressing for BASE and SIMD ops\r\n - 32/64-bit configurable SIMD elements (fp+int)\r\n - Simultaneous 32/64-bit BASE (bridges, rules) and SIMD ops\r\n - ISA implementation for int8/int16 (byte/half) BASE ops\r\n - Full control over code, compiler steps out of the way\r\n - Potential for bit-exact fp-compute across modern targets\r\n - Used in QuadRay engine\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvectorchief%2Funisimd-assembler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvectorchief%2Funisimd-assembler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvectorchief%2Funisimd-assembler/lists"}