//=== Integer MMX and XMM Instructions ===//
-// PACKSSWB/DW.
-// mm <- mm.
-def ZnWriteFPU12 : SchedWriteRes<[ZnFPU12]> ;
-def ZnWriteFPU12Y : SchedWriteRes<[ZnFPU12]> {
- let NumMicroOps = 2;
-}
-def ZnWriteFPU12m : SchedWriteRes<[ZnAGU, ZnFPU12]> ;
-def ZnWriteFPU12Ym : SchedWriteRes<[ZnAGU, ZnFPU12]> {
- let Latency = 8;
- let NumMicroOps = 2;
-}
-
-def : InstRW<[ZnWriteFPU12], (instrs MMX_PACKSSDWrr,
- MMX_PACKSSWBrr,
- MMX_PACKUSWBrr)>;
-def : InstRW<[ZnWriteFPU12m], (instrs MMX_PACKSSDWrm,
- MMX_PACKSSWBrm,
- MMX_PACKUSWBrm)>;
-
def ZnWriteFPU013 : SchedWriteRes<[ZnFPU013]> ;
def ZnWriteFPU013Y : SchedWriteRes<[ZnFPU013]> {
let Latency = 2;
//=== Integer MMX and XMM Instructions ===//
-// PACKSSWB/DW.
-// mm <- mm.
-def Zn2WriteFPU12 : SchedWriteRes<[Zn2FPU12]> ;
-def Zn2WriteFPU12Y : SchedWriteRes<[Zn2FPU12]> {
- let Latency = 4;
- let NumMicroOps = 2;
-}
-def Zn2WriteFPU12m : SchedWriteRes<[Zn2AGU, Zn2FPU12]> ;
-def Zn2WriteFPU12Ym : SchedWriteRes<[Zn2AGU, Zn2FPU12]> {
- let Latency = 8;
- let NumMicroOps = 2;
-}
-
-def : InstRW<[Zn2WriteFPU12], (instrs MMX_PACKSSDWrr,
- MMX_PACKSSWBrr,
- MMX_PACKUSWBrr)>;
-def : InstRW<[Zn2WriteFPU12m], (instrs MMX_PACKSSDWrm,
- MMX_PACKSSWBrm,
- MMX_PACKUSWBrm)>;
-
def Zn2WriteFPU013 : SchedWriteRes<[Zn2FPU013]> ;
def Zn2WriteFPU013Y : SchedWriteRes<[Zn2FPU013]> ;
def Zn2WriteFPU013m : SchedWriteRes<[Zn2AGU, Zn2FPU013]> {
# CHECK-NEXT: 1 2 1.00 movq %mm0, %rcx
# CHECK-NEXT: 1 1 0.50 * movq %mm0, (%rax)
# CHECK-NEXT: 1 1 0.50 packsswb %mm0, %mm2
-# CHECK-NEXT: 1 1 0.50 * packsswb (%rax), %mm2
+# CHECK-NEXT: 1 8 0.50 * packsswb (%rax), %mm2
# CHECK-NEXT: 1 1 0.50 packssdw %mm0, %mm2
-# CHECK-NEXT: 1 1 0.50 * packssdw (%rax), %mm2
+# CHECK-NEXT: 1 8 0.50 * packssdw (%rax), %mm2
# CHECK-NEXT: 1 1 0.50 packuswb %mm0, %mm2
-# CHECK-NEXT: 1 1 0.50 * packuswb (%rax), %mm2
+# CHECK-NEXT: 1 8 0.50 * packuswb (%rax), %mm2
# CHECK-NEXT: 1 1 0.33 paddb %mm0, %mm2
# CHECK-NEXT: 1 8 0.50 * paddb (%rax), %mm2
# CHECK-NEXT: 1 1 0.33 paddd %mm0, %mm2
# CHECK-NEXT: 1 2 1.00 movq %mm0, %rcx
# CHECK-NEXT: 1 1 0.33 * movq %mm0, (%rax)
# CHECK-NEXT: 1 1 0.50 packsswb %mm0, %mm2
-# CHECK-NEXT: 1 1 0.50 * packsswb (%rax), %mm2
+# CHECK-NEXT: 1 8 0.50 * packsswb (%rax), %mm2
# CHECK-NEXT: 1 1 0.50 packssdw %mm0, %mm2
-# CHECK-NEXT: 1 1 0.50 * packssdw (%rax), %mm2
+# CHECK-NEXT: 1 8 0.50 * packssdw (%rax), %mm2
# CHECK-NEXT: 1 1 0.50 packuswb %mm0, %mm2
-# CHECK-NEXT: 1 1 0.50 * packuswb (%rax), %mm2
+# CHECK-NEXT: 1 8 0.50 * packuswb (%rax), %mm2
# CHECK-NEXT: 1 1 0.33 paddb %mm0, %mm2
# CHECK-NEXT: 1 8 0.33 * paddb (%rax), %mm2
# CHECK-NEXT: 1 1 0.33 paddd %mm0, %mm2