[X86][Btver2] Add CVTSD2SS/CVTSS2SD scheduler costs
llvm-svn: 328541
This commit is contained in:
parent
f13bbf1d58
commit
8815105cd5
|
@ -322,6 +322,20 @@ defm : JWriteResFpuPair<WriteCvtF2I, [JFPU1, JSTC], 3>; // Float -> Intege
|
|||
defm : JWriteResFpuPair<WriteCvtI2F, [JFPU1, JSTC], 3>; // Integer -> Float.
|
||||
defm : JWriteResFpuPair<WriteCvtF2F, [JFPU1, JSTC], 3>; // Float -> Float size conversion.
|
||||
|
||||
def JWriteCVTF2F : SchedWriteRes<[JFPU1, JSTC]> {
|
||||
let Latency = 7;
|
||||
let ResourceCycles = [1, 2];
|
||||
let NumMicroOps = 2;
|
||||
}
|
||||
def : InstRW<[JWriteCVTF2F], (instregex "(V)?CVTS(D|S)2S(D|S)rr")>;
|
||||
|
||||
def JWriteCVTF2FLd : SchedWriteRes<[JLAGU, JFPU1, JSTC]> {
|
||||
let Latency = 12;
|
||||
let ResourceCycles = [1, 1, 2];
|
||||
let NumMicroOps = 2;
|
||||
}
|
||||
def : InstRW<[JWriteCVTF2FLd], (instregex "(V)?CVTS(D|S)2S(D|S)rm")>;
|
||||
|
||||
def JWriteCVTSI2F : SchedWriteRes<[JFPU1, JSTC, JFPA, JALU0]> {
|
||||
let Latency = 7;
|
||||
let NumMicroOps = 2;
|
||||
|
|
|
@ -2218,17 +2218,17 @@ define float @test_cvtsd2ss(double %a0, double *%a1) {
|
|||
;
|
||||
; BTVER2-SSE-LABEL: test_cvtsd2ss:
|
||||
; BTVER2-SSE: # %bb.0:
|
||||
; BTVER2-SSE-NEXT: cvtsd2ss %xmm0, %xmm1 # sched: [3:1.00]
|
||||
; BTVER2-SSE-NEXT: cvtsd2ss %xmm0, %xmm1 # sched: [7:2.00]
|
||||
; BTVER2-SSE-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero sched: [5:1.00]
|
||||
; BTVER2-SSE-NEXT: cvtsd2ss %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; BTVER2-SSE-NEXT: cvtsd2ss %xmm0, %xmm0 # sched: [7:2.00]
|
||||
; BTVER2-SSE-NEXT: addss %xmm1, %xmm0 # sched: [3:1.00]
|
||||
; BTVER2-SSE-NEXT: retq # sched: [4:1.00]
|
||||
;
|
||||
; BTVER2-LABEL: test_cvtsd2ss:
|
||||
; BTVER2: # %bb.0:
|
||||
; BTVER2-NEXT: vcvtsd2ss %xmm0, %xmm0, %xmm0 # sched: [7:2.00]
|
||||
; BTVER2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero sched: [5:1.00]
|
||||
; BTVER2-NEXT: vcvtsd2ss %xmm0, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; BTVER2-NEXT: vcvtsd2ss %xmm1, %xmm1, %xmm1 # sched: [3:1.00]
|
||||
; BTVER2-NEXT: vcvtsd2ss %xmm1, %xmm1, %xmm1 # sched: [7:2.00]
|
||||
; BTVER2-NEXT: vaddss %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; BTVER2-NEXT: retq # sched: [4:1.00]
|
||||
;
|
||||
|
@ -2616,17 +2616,17 @@ define double @test_cvtss2sd(float %a0, float *%a1) {
|
|||
;
|
||||
; BTVER2-SSE-LABEL: test_cvtss2sd:
|
||||
; BTVER2-SSE: # %bb.0:
|
||||
; BTVER2-SSE-NEXT: cvtss2sd %xmm0, %xmm1 # sched: [3:1.00]
|
||||
; BTVER2-SSE-NEXT: cvtss2sd %xmm0, %xmm1 # sched: [7:2.00]
|
||||
; BTVER2-SSE-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero sched: [5:1.00]
|
||||
; BTVER2-SSE-NEXT: cvtss2sd %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; BTVER2-SSE-NEXT: cvtss2sd %xmm0, %xmm0 # sched: [7:2.00]
|
||||
; BTVER2-SSE-NEXT: addsd %xmm1, %xmm0 # sched: [3:1.00]
|
||||
; BTVER2-SSE-NEXT: retq # sched: [4:1.00]
|
||||
;
|
||||
; BTVER2-LABEL: test_cvtss2sd:
|
||||
; BTVER2: # %bb.0:
|
||||
; BTVER2-NEXT: vcvtss2sd %xmm0, %xmm0, %xmm0 # sched: [7:2.00]
|
||||
; BTVER2-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero sched: [5:1.00]
|
||||
; BTVER2-NEXT: vcvtss2sd %xmm0, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; BTVER2-NEXT: vcvtss2sd %xmm1, %xmm1, %xmm1 # sched: [3:1.00]
|
||||
; BTVER2-NEXT: vcvtss2sd %xmm1, %xmm1, %xmm1 # sched: [7:2.00]
|
||||
; BTVER2-NEXT: vaddsd %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
|
||||
; BTVER2-NEXT: retq # sched: [4:1.00]
|
||||
;
|
||||
|
|
|
@ -1138,8 +1138,8 @@ vzeroupper
|
|||
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 - - - 1.00 - - - vcvtsd2si %xmm0, %rcx
|
||||
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 1.00 - - 1.00 - - - vcvtsd2si (%rax), %ecx
|
||||
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 1.00 - - 1.00 - - - vcvtsd2si (%rax), %rcx
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - vcvtsd2ss %xmm0, %xmm1, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - vcvtsd2ss (%rax), %xmm1, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 2.00 - - - vcvtsd2ss %xmm0, %xmm1, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 2.00 - - - vcvtsd2ss (%rax), %xmm1, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - vcvtsi2sdl %ecx, %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - vcvtsi2sdq %rcx, %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - vcvtsi2sdl (%rax), %xmm0, %xmm2
|
||||
|
@ -1148,8 +1148,8 @@ vzeroupper
|
|||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - vcvtsi2ssq %rcx, %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - vcvtsi2ssl (%rax), %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - vcvtsi2ssq (%rax), %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - vcvtss2sd %xmm0, %xmm1, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - vcvtss2sd (%rax), %xmm1, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 2.00 - - - vcvtss2sd %xmm0, %xmm1, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 2.00 - - - vcvtss2sd (%rax), %xmm1, %xmm2
|
||||
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 - - - 1.00 - - - vcvtss2si %xmm0, %ecx
|
||||
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 - - - 1.00 - - - vcvtss2si %xmm0, %rcx
|
||||
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 1.00 - - 1.00 - - - vcvtss2si (%rax), %ecx
|
||||
|
|
|
@ -426,14 +426,14 @@ xorpd (%rax), %xmm2
|
|||
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 - - - 1.00 - - - cvtsd2si %xmm0, %rcx
|
||||
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 1.00 - - 1.00 - - - cvtsd2si (%rax), %ecx
|
||||
# CHECK-NEXT: 1.00 - - 1.00 - - 1.00 1.00 - - 1.00 - - - cvtsd2si (%rax), %rcx
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - cvtsd2ss %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - cvtsd2ss (%rax), %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 2.00 - - - cvtsd2ss %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 2.00 - - - cvtsd2ss (%rax), %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - cvtsi2sdl %ecx, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - cvtsi2sdq %rcx, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - cvtsi2sdl (%rax), %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - cvtsi2sdl (%rax), %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - cvtss2sd %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - cvtss2sd (%rax), %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 2.00 - - - cvtss2sd %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 2.00 - - - cvtss2sd (%rax), %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - cvttpd2dq %xmm0, %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 1.00 - - 1.00 - - - cvttpd2dq (%rax), %xmm2
|
||||
# CHECK-NEXT: - - - - - - 1.00 - - - 1.00 - - - cvttps2dq %xmm0, %xmm2
|
||||
|
|
Loading…
Reference in New Issue