[llvm-bugs] [Bug 36444] New: MOVQ involving XMM registers rejected by verifier
via llvm-bugs
llvm-bugs at lists.llvm.org
Mon Feb 19 19:39:44 PST 2018
https://bugs.llvm.org/show_bug.cgi?id=36444
Bug ID: 36444
Summary: MOVQ involving XMM registers rejected by verifier
Product: libraries
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P
Component: Backend: X86
Assignee: unassignedbugs at nondot.org
Reporter: kavon.farvardin at gmail.com
CC: llvm-bugs at lists.llvm.org
Created attachment 19909
--> https://bugs.llvm.org/attachment.cgi?id=19909&action=edit
MIR test case that produces the error.
According to the Intel instruction manual, on x86-64, we can use movq with xmm
registers in the following ways:
MOVQ xmm1, xmm2/m64 (Move quadword from xmm2/mem64 to xmm1.)
MOVQ xmm2/m64, xmm1 (Move quadword from xmm1 to xmm2/mem64.)
However, such instructions are rejected by the MachineFunction verifier. I have
attached a MIR test case that reproduces this failure on ToT.
I'm not aware of a way to trigger this bug with LLVM IR, since I think
instruction selection uses a different instruction for such moves, since these
movq's seem to have a complex instruction encoding, but are valid instructions.
------------
➤ llc -mtriple=x86_64-- fail.mir
# Machine code for function foo: IsSSA, NoPHIs, TracksLiveness, NoVRegs
Function Live Ins: %rdi
%bb.0: derived from LLVM BB %entry
Live Ins: %rdi
%xmm2 = MOV64rm %rdi, 1, %noreg, 0, %noreg
MOV64mr %rdi, 1, %noreg, 0, %noreg, %xmm2
RETQ %rdi
# End machine code for function foo.
*** Bad machine code: Illegal physical register for instruction ***
- function: foo
- basic block: %bb.0 entry (0x7fbaef84ba78)
- instruction: %xmm2 = MOV64rm
- operand 0: %xmm2
%xmm2 is not a GR64 register.
*** Bad machine code: Illegal physical register for instruction ***
- function: foo
- basic block: %bb.0 entry (0x7fbaef84ba78)
- instruction: MOV64mr
- operand 5: %xmm2
%xmm2 is not a GR64 register.
LLVM ERROR: Found 2 machine code errors.
------------
--
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/20180220/b849d92e/attachment.html>
More information about the llvm-bugs
mailing list