[LLVMbugs] [Bug 8900] New: Shufflevector of doubles generates incorrect code (using float shuff)

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Jan 4 06:11:44 PST 2011


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

           Summary: Shufflevector of doubles generates incorrect code
                    (using float shuff)
           Product: new-bugs
           Version: 2.8
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: nadav256 at gmail.com
                CC: llvmbugs at cs.uiuc.edu


In the code below, the shuffle instruction is first selected to be unpckld,
which is correct. However, during the ISel pattern matching phase, it is
replaced with the unpackls instruction (which is incorrect).


define  <2 x double> @test_even_double4(<4 x double>* %srcA, <2 x double>*
%dst){
  %i5 = getelementptr inbounds <4 x double> * %srcA, i32 3
  %i6 = load <4 x double>* %i5, align 32
  %m387 = shufflevector <4 x double> %i6, <4 x double> undef, <2 x i32> <i32 0,
i32 2>
  ret <2 x double> %m387
}


movaps  XMM0, XMMWORD PTR [RDI + 96]
unpcklps  XMM0, XMMWORD PTR [RDI + 112] # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
ret

-- 
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