forked from OSchip/llvm-project
X86: move Int_CVTSD2SSrr, Int_CVTSI2SSrr, Int_CVTSI2SDrr, Int_CVTSS2SDrr from
OpTbl1 to OpTbl2 since they have 3 operands and the last operand can be changed to a memory operand. PR13576 llvm-svn: 161769
This commit is contained in:
parent
7d8b53c1f8
commit
959acb106b
|
@ -414,12 +414,6 @@ X86InstrInfo::X86InstrInfo(X86TargetMachine &tm)
|
|||
{ X86::CVTSD2SIrr, X86::CVTSD2SIrm, 0 },
|
||||
{ X86::CVTSS2SI64rr, X86::CVTSS2SI64rm, 0 },
|
||||
{ X86::CVTSS2SIrr, X86::CVTSS2SIrm, 0 },
|
||||
{ X86::Int_CVTSD2SSrr, X86::Int_CVTSD2SSrm, 0 },
|
||||
{ X86::Int_CVTSI2SD64rr,X86::Int_CVTSI2SD64rm, 0 },
|
||||
{ X86::Int_CVTSI2SDrr, X86::Int_CVTSI2SDrm, 0 },
|
||||
{ X86::Int_CVTSI2SS64rr,X86::Int_CVTSI2SS64rm, 0 },
|
||||
{ X86::Int_CVTSI2SSrr, X86::Int_CVTSI2SSrm, 0 },
|
||||
{ X86::Int_CVTSS2SDrr, X86::Int_CVTSS2SDrm, 0 },
|
||||
{ X86::CVTTPD2DQrr, X86::CVTTPD2DQrm, TB_ALIGN_16 },
|
||||
{ X86::CVTTPS2DQrr, X86::CVTTPS2DQrm, TB_ALIGN_16 },
|
||||
{ X86::Int_CVTTSD2SI64rr,X86::Int_CVTTSD2SI64rm, 0 },
|
||||
|
@ -680,6 +674,12 @@ X86InstrInfo::X86InstrInfo(X86TargetMachine &tm)
|
|||
{ X86::IMUL64rr, X86::IMUL64rm, 0 },
|
||||
{ X86::Int_CMPSDrr, X86::Int_CMPSDrm, 0 },
|
||||
{ X86::Int_CMPSSrr, X86::Int_CMPSSrm, 0 },
|
||||
{ X86::Int_CVTSD2SSrr, X86::Int_CVTSD2SSrm, 0 },
|
||||
{ X86::Int_CVTSI2SD64rr,X86::Int_CVTSI2SD64rm, 0 },
|
||||
{ X86::Int_CVTSI2SDrr, X86::Int_CVTSI2SDrm, 0 },
|
||||
{ X86::Int_CVTSI2SS64rr,X86::Int_CVTSI2SS64rm, 0 },
|
||||
{ X86::Int_CVTSI2SSrr, X86::Int_CVTSI2SSrm, 0 },
|
||||
{ X86::Int_CVTSS2SDrr, X86::Int_CVTSS2SDrm, 0 },
|
||||
{ X86::MAXPDrr, X86::MAXPDrm, TB_ALIGN_16 },
|
||||
{ X86::MAXPDrr_Int, X86::MAXPDrm_Int, TB_ALIGN_16 },
|
||||
{ X86::MAXPSrr, X86::MAXPSrm, TB_ALIGN_16 },
|
||||
|
|
|
@ -70,3 +70,17 @@ define <4 x float> @test4(<4 x float> %A, float *%b, i32 %C) nounwind {
|
|||
; CHECK: call
|
||||
; CHECK: roundss $4, %xmm{{.*}}, %xmm0
|
||||
}
|
||||
|
||||
; PR13576
|
||||
define <2 x double> @test5() nounwind uwtable readnone noinline {
|
||||
entry:
|
||||
%0 = tail call <2 x double> @llvm.x86.sse2.cvtsi2sd(<2 x double> <double
|
||||
4.569870e+02, double 1.233210e+02>, i32 128) nounwind readnone
|
||||
ret <2 x double> %0
|
||||
; CHECK: test5:
|
||||
; CHECK: movl
|
||||
; CHECK: mov
|
||||
; CHECK: cvtsi2sd
|
||||
}
|
||||
|
||||
declare <2 x double> @llvm.x86.sse2.cvtsi2sd(<2 x double>, i32) nounwind readnone
|
||||
|
|
Loading…
Reference in New Issue