diff options
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrMMX.td | 15 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/mmx-builtins.ll | 8 | 
2 files changed, 16 insertions, 7 deletions
diff --git a/llvm/lib/Target/X86/X86InstrMMX.td b/llvm/lib/Target/X86/X86InstrMMX.td index 07314a092c8..cb129562aa9 100644 --- a/llvm/lib/Target/X86/X86InstrMMX.td +++ b/llvm/lib/Target/X86/X86InstrMMX.td @@ -189,13 +189,14 @@ multiclass sse12_cvt_pint<bits<8> opc, RegisterClass SrcRC, RegisterClass DstRC,  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>;  }  //===----------------------------------------------------------------------===// diff --git a/llvm/test/CodeGen/X86/mmx-builtins.ll b/llvm/test/CodeGen/X86/mmx-builtins.ll index a8d33f43da0..f5b3f765fe6 100644 --- a/llvm/test/CodeGen/X86/mmx-builtins.ll +++ b/llvm/test/CodeGen/X86/mmx-builtins.ll @@ -1337,3 +1337,11 @@ entry:    %7 = extractelement <1 x i64> %6, i32 0    ret i64 %7  } + +define <4 x float> @test89(<4 x float> %a, x86_mmx %b) nounwind { +; CHECK: cvtpi2ps +  %c = tail call <4 x float> @llvm.x86.sse.cvtpi2ps(<4 x float> %a, x86_mmx %b) +  ret <4 x float> %c +} + +declare <4 x float> @llvm.x86.sse.cvtpi2ps(<4 x float>, x86_mmx) nounwind readnone  | 

