[LLVMbugs] [Bug 1211] NEW: "Register class of operand and regclass of use don't agree!" on x86 glibc atan

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Mon Feb 19 14:16:20 PST 2007


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

           Summary: "Register class of operand and regclass of use don't
                    agree!" on x86 glibc atan
           Product: new-bugs
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: baldrick at free.fr


The following is simplified from the x86 atan2 code in glibc's mathinline.h:

double atan (double x)
{
  register double value;
  __asm ("fld1; fpatan" : "=t" (value) : "0" (x) : "st(1)");
  return value;
}

A quite recent llvm-gcc4 barfs on it:

$ gcc -c atan.c
cc1: llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:364: void 
llvm::ScheduleDAG::AddOperand(llvm::MachineInstr*, llvm::SDOperand, unsigned 
int, const llvm::TargetInstrDescriptor*, llvm::DenseMap<llvm::SDNode*, 
unsigned int>&): Assertion `RegMap->getRegClass(VReg) == RC && "Register class 
of operand and regclass of use don't agree!"' failed.
atan.c:6: internal compiler error: Aborted
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://llvm.org/bugs> for instructions.



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list