Skip to content

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

@davidtwco

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.

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

Status

To Triage

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions