INNER CODE UNIT · Rust
spilling_kernel_nvvm_ir
NVlabs/cuda-oxide · cuda-oxide/crates/cuda-artifact-finalizer/src/lib.rs:516
fn spilling_kernel_nvvm_ir(values: usize, rounds: usize, maxnreg: u32) -> String {
use std::fmt::Write;
let mut body = String::new();
for i in 0..values {
let _ = writeln!(
body,
" %ptr{i} = getelementptr inbounds float, float* %data, i64 {i}"
);
let _ = writeln!(body, " %v0_{i} = load float, float* %ptr{i}, align 4");
}
for round in 0..rounds {
let next = round + 1;
for i in 0..values {
let mul_with = (i + 1) % values;
let add_with = (i + 3) % values;
let _ = writeln!(
body,