[LLVMbugs] [Bug 1672] New: legalizer doesn' t scalarize illegal vector return correctly in some cases

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Fri Sep 14 22:15:34 PDT 2007


http://llvm.org/bugs/show_bug.cgi?id=1672

           Summary: legalizer doesn't scalarize illegal vector return
                    correctly in some cases
           Product: libraries
           Version: 1.0
          Platform: PC
        OS/Version: All
            Status: NEW
          Keywords: compile-fail
          Severity: normal
          Priority: P2
         Component: Common Code Generator Code
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: sabre at nondot.org
                CC: llvmbugs at cs.uiuc.edu


The PPC backend dies on this input:

define <4 x float> @test1110(float %a, float %b, float %c) {
entry:
        ret <4 x float> zeroinitializer
}

This gets turned into a return of 4 floats.  The PPC backend dies because it
only knows how to return one float value (PPCCallingConv.td):

  CCIfType<[f32, f64], CCAssignToReg<[F1]>>,

It would be very easy to change this to:

  CCIfType<[f32, f64], CCAssignToReg<[F1,F2,F3,F4]>>,

However, this would fix this case, but not the arbitrary case, and this is
almost certainly not abi compatible with GCC.

-Chris


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list