[llvm-bugs] [Bug 40798] New: GlobalISel unimplemented reg-to-reg copy assertion

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Feb 21 01:43:29 PST 2019


            Bug ID: 40798
           Summary: GlobalISel unimplemented reg-to-reg copy assertion
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: AArch64
          Assignee: unassignedbugs at nondot.org
          Reporter: sam.parker at arm.com
                CC: arnaud.degrandmaison at arm.com,
                    llvm-bugs at lists.llvm.org, peter.smith at linaro.org,
                    Ties.Stuij at arm.com

Created attachment 21500
  --> https://bugs.llvm.org/attachment.cgi?id=21500&action=edit
reproducer at -O0

Running llc at -O0 with the attached .ll file results in an assertion in
llvm::AArch64InstrInfo::copyPhysReg. I don't know anything about GlobalISel but
from  the debug output, I think the offending instructions are these:
  %20:_(<4 x s32>) = G_EXTRACT %19:_(s384), 0                                   
  %21:_(<4 x s32>) = G_EXTRACT %19:_(s384), 128                                 
  %22:_(<4 x s32>) = G_EXTRACT %19:_(s384), 256

Which get legalised into:
  %20:fpr(<4 x s32>) = G_BUILD_VECTOR %189:gpr(s64), %191:gpr(s64)
  %21:fpr(<4 x s32>) = G_BUILD_VECTOR %179:gpr(s64), %181:gpr(s64)              
  %22:fpr(<4 x s32>) = G_BUILD_VECTOR %169:gpr(s64), %171:gpr(s64)

Which I believe is incorrect because of the type mismatch between the scalars
and the elements of the resulting vector.

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/20190221/cc698ed7/attachment-0001.html>

More information about the llvm-bugs mailing list