svn commit: r259888 - head/contrib/llvm/lib/Target/X86

Dimitry Andric dim at FreeBSD.org
Wed Dec 25 20:58:03 UTC 2013


Author: dim
Date: Wed Dec 25 20:58:02 2013
New Revision: 259888
URL: http://svnweb.freebsd.org/changeset/base/259888

Log:
  Pull in r183971 from upstream llvm trunk:
  
    X86: cvtpi2ps is just an SSE instruction with MMX operands. It has no AVX
    equivalent.
  
    Give it the right register format so we can also emit it when AVX is enabled.
  
  This should fix a "Cannot select: intrinsic %llvm.x86.sse.cvtpi2ps" fatal error
  in clang while building the gnuradio port for amd64.
  
  Reported by:	db
  MFC after:	3 days

Modified:
  head/contrib/llvm/lib/Target/X86/X86InstrMMX.td

Modified: head/contrib/llvm/lib/Target/X86/X86InstrMMX.td
==============================================================================
--- head/contrib/llvm/lib/Target/X86/X86InstrMMX.td	Wed Dec 25 20:26:49 2013	(r259887)
+++ head/contrib/llvm/lib/Target/X86/X86InstrMMX.td	Wed Dec 25 20:58:02 2013	(r259888)
@@ -189,13 +189,14 @@ multiclass sse12_cvt_pint<bits<8> opc, R
 multiclass sse12_cvt_pint_3addr<bits<8> opc, RegisterClass SrcRC,
                     RegisterClass DstRC, Intrinsic Int, X86MemOperand x86memop,
                     PatFrag ld_frag, string asm, Domain d> {
-  def irr : PI<opc, MRMSrcReg, (outs DstRC:$dst),(ins DstRC:$src1, SrcRC:$src2),
-              asm, [(set DstRC:$dst, (Int DstRC:$src1, SrcRC:$src2))], 
-              NoItinerary, d>;
-  def irm : PI<opc, MRMSrcMem, (outs DstRC:$dst),
-                   (ins DstRC:$src1, x86memop:$src2), asm,
-              [(set DstRC:$dst, (Int DstRC:$src1, (ld_frag addr:$src2)))], 
-              NoItinerary, d>;
+  def irr : MMXPI<opc, MRMSrcReg, (outs DstRC:$dst),
+                  (ins DstRC:$src1, SrcRC:$src2), asm,
+                  [(set DstRC:$dst, (Int DstRC:$src1, SrcRC:$src2))],
+                  NoItinerary, d>;
+  def irm : MMXPI<opc, MRMSrcMem, (outs DstRC:$dst),
+                  (ins DstRC:$src1, x86memop:$src2), asm,
+                  [(set DstRC:$dst, (Int DstRC:$src1, (ld_frag addr:$src2)))],
+                  NoItinerary, d>;
 }
 
 //===----------------------------------------------------------------------===//


More information about the svn-src-head mailing list