nano-gemm-codegen 0.2.0
“Small matrix multiplication”
Rust asm! inline assembly macroRust transmute bitwise-conversion syntax
SHA-2568360622cda645f1fa13361ee3963f442c6a49e78bc6e82e0be1f18f324d5d35f
MaleculeH(Mg)
Evidence
2:23… comes), because no masked load instructions
3
4// f32, f64, c32, c64
5
6use std::fmt::Display;
7use std::fmt::Write;
8
9mod generic {
10 use super::*;
11
12 pub struct RealKernel {
13 pub ty: &'static str,
14 pub reg_ty: &'static str,
15 …
43:9… pub conj: &'static str,
44 }
45
46 impl Display for RealKernel {
47 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
48 …
438:7… d aarch64 {
439 use super::*;
440 use generic::{CplxKernel, RealKernel};
441
442 pub fn codegen_f32() -> Result<String, Box<dyn std::error::Error>> {
443 let mut code = Strin …
455:6… unsafe fn set1(v: f32) -> float32x4_t {{
456 transmute([v; 4])
457 }}
458 #[inline(always)]
459 unsafe fn mul_add(a: float32x4_t, b: float32x4_t, c: float32x4_ …
670:52… loat32x4_t, rhs: float32x4_t) -> float32x4_t {{
671 core::arch::asm!(
672 "fcmla {{0:v}}.4s, {{1:v}}.4s, {{2:v}}.4s, 0",
673 inout(vreg) acc,
674 in(vreg) lhs,
675 in(vreg) rhs,
676 …
No evidence locations were recorded for this file. Raw result