Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[proposal] Add vector intrinsics for loading into lane 0 and setting other lanes to 0

Open
#269 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
c
Domain
compilers

Research direction

No file or test is named. Start by reviewing the existing ACLE lane-load intrinsics and the NEON and SVE intrinsic definitions, then compare the proposed signatures with the instruction examples. Done means agreeing on and documenting the intrinsic set and its lane-zero behavior for both architectures.

Written by the indexing model from the issue text.

Description

proposal

It would be useful to have vector intrinsics that load lane 0 from memory and set the other elements to zero. E.g.:

  • int8x16_t vfoo_s8(const int8_t *) → LDR Bn, [Xn]
  • int16x8_t vfoo_s16(const int16_t *) → LDR Hn, [Xn]
  • ….

The same thing would work for SVE.

GCC does at least optimise something like:

#include <arm_neon.h>

float32x2_t f(float32_t *ptr)
{
    float32x2_t vec = {};
    vec = vld1_lane_f32(ptr, vec, 0);
    vec = vld1_lane_f32(ptr + 2, vec, 1);
    return vec;
}

to:

        ldr     s0, [x0], 8
        ld1     {v0.s}[1], [x0]
        ret

and LLVM behaves similarly, but that seems a bit indirect.

Dominant language
Python
Stars
129
Forks
77
Avg merge
8d 12h
Merged PRs (30d)
2

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ARM-software/acle

All issues in ARM-software/acle

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.