Skip to content

re-enable assert_instr for SVE [us]mull[bt] instructions #2084

Description

@davidtwco

b661e23 disabled assert_instr on a handful of SVE intrinsics as MSVC's dumpbin.exe wasn't disassembling the instructions. I've reported this issue to @wesleywiser and internally to the relevant people at Arm. Once this is fixed in MSVC and we're using a version with the fix in CI, we'll want to revert b661e23.

A simpler C reproduction is:

#include <arm_sve.h>

svint64_t foo(svint32_t op1, svint32_t op2) {
    return svmullb_lane_s64(op1, op2, 0);
}

int main() { return 0; }

Compiling with the latest LLVM (clang -target aarch64-pc-windows-msvc -O3 -g0 -march=armv9-a) and given to dumpbin.exe (dumpbin.exe /DISASM:NOBYTES a.exe /OUT:a.dump), the instruction isn't disassembled:

foo:
  0000000140001000: 44E1C000
  0000000140001004: ret

I've reproduced this with the latest dumpbin.exe that I can download on Windows on Arm at the time of writing: 14.50.35729.0.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions