[llvm-bugs] [Bug 47179] New: ARM64: Loading 64 bit/128 bit literals into SIMD&FP registers not working correctly
via llvm-bugs
llvm-bugs at lists.llvm.org
Sat Aug 15 11:02:33 PDT 2020
https://bugs.llvm.org/show_bug.cgi?id=47179
Bug ID: 47179
Summary: ARM64: Loading 64 bit/128 bit literals into SIMD&FP
registers not working correctly
Product: tools
Version: trunk
Hardware: Other
OS: FreeBSD
Status: NEW
Severity: normal
Priority: P
Component: gccas
Assignee: unassignedbugs at nondot.org
Reporter: fuzxxl at gmail.com
CC: llvm-bugs at lists.llvm.org
I'm trying to load a bit mask into an ARM64 SIMD&FP register like this:
ldr d10, =0x8040201008040201
LLVM-as complains upon seeing this code:
count8asm.s:8:11: error: Immediate too large for register
ldr d10, =0x8040201008040201
However, this error message is clearly nonsensical. GNU as assembles this just
fine.
The reason for this seems to be a borked check in AArch64AsmParser.cpp which
wants to check if the immediate is a 32 bit number when the argument is a W
register, but it instead does this check for all registers instead of X
registers, which is clearly incorrect. More sophisticated handling, including
code to deal with 128 bit literals is needed.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20200815/bf4852cc/attachment.html>
More information about the llvm-bugs
mailing list