From 2d75e63393c7b7af4ef012da00e12276b08e4ce8 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sun, 10 Dec 2017 03:16:38 +0000 Subject: [PATCH] [X86] Correct the _Int part of more scheduler model instrexes. Put _b in the correct order relative to _Int git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320282 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86SchedSkylakeServer.td | 156 ++++++++++++------------ test/CodeGen/X86/recip-fastmath2.ll | 12 +- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/lib/Target/X86/X86SchedSkylakeServer.td b/lib/Target/X86/X86SchedSkylakeServer.td index 794eccf6fdd..29f4a49513e 100755 --- a/lib/Target/X86/X86SchedSkylakeServer.td +++ b/lib/Target/X86/X86SchedSkylakeServer.td @@ -1916,8 +1916,8 @@ def: InstRW<[SKXWriteResGroup32], (instregex "VCMPPDZrri(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup32], (instregex "VCMPPSZ128rri(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup32], (instregex "VCMPPSZ256rri(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup32], (instregex "VCMPPSZrri(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup32], (instregex "VCMPSDZrr(_Int)?(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup32], (instregex "VCMPSSZrr(_Int)?(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup32], (instregex "VCMPSDZrr(b?)(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup32], (instregex "VCMPSSZrr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup32], (instregex "VDBPSADBWZ128rri(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup32], (instregex "VDBPSADBWZ256rri(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup32], (instregex "VDBPSADBWZrri(b?)(k?)(z?)")>; @@ -2518,9 +2518,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SDZr(_Int)?(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SSZr(_Int)?(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD132SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213PDZ128r(b?)(k?)(z?)")>; @@ -2532,9 +2532,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD213SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231PDZ128r(b?)(k?)(z?)")>; @@ -2546,9 +2546,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADD231SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADDSUB132PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMADDSUB132PDZ128r(b?)(k?)(z?)")>; @@ -2590,9 +2590,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB132SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213PDZ128r(b?)(k?)(z?)")>; @@ -2604,9 +2604,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB213SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231PDZ128r(b?)(k?)(z?)")>; @@ -2618,9 +2618,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUB231SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUBADD132PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFMSUBADD132PDZ128r(b?)(k?)(z?)")>; @@ -2662,9 +2662,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD132SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213PDZ128r(b?)(k?)(z?)")>; @@ -2676,9 +2676,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD213SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231PDZ128r(b?)(k?)(z?)")>; @@ -2690,9 +2690,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMADD231SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132PDZ128r(b?)(k?)(z?)")>; @@ -2704,9 +2704,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB132SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213PDZ128r(b?)(k?)(z?)")>; @@ -2718,9 +2718,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB213SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231PDYr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231PDZ128r(b?)(k?)(z?)")>; @@ -2732,9 +2732,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231PSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231PSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231PSZr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231PSr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231SDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231SDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231SDr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231SSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231SSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VFNMSUB231SSr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VGETEXPPDZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VGETEXPPDZ256r(b?)(k?)(z?)")>; @@ -2790,9 +2790,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VMULPSZ128rr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VMULPSZ256rr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VMULPSZrr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VMULPSrr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VMULSDZrr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VMULSDZrr(_Int)?(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VMULSDrr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VMULSSZrr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VMULSSZrr(_Int)?(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VMULSSrr")>; def: InstRW<[SKXWriteResGroup50], (instregex "VPHMINPOSUWrr128")>; def: InstRW<[SKXWriteResGroup50], (instregex "VPLZCNTDZ128rr(b?)(k?)(z?)")>; @@ -2874,9 +2874,9 @@ def: InstRW<[SKXWriteResGroup50], (instregex "VSUBPSZ128rr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VSUBPSZ256rr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VSUBPSZrr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VSUBPSrr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VSUBSDZrr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VSUBSDZrr(_Int)?(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VSUBSDrr")>; -def: InstRW<[SKXWriteResGroup50], (instregex "VSUBSSZrr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup50], (instregex "VSUBSSZrr(_Int)?(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup50], (instregex "VSUBSSrr")>; def SKXWriteResGroup51 : SchedWriteRes<[SKXPort5]> { @@ -3072,7 +3072,7 @@ def SKXWriteResGroup59 : SchedWriteRes<[SKXPort015]> { let NumMicroOps = 2; let ResourceCycles = [2]; } -def: InstRW<[SKXWriteResGroup59], (instregex "VCVTSD2SSZrr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup59], (instregex "VCVTSD2SSZrr(b?)(_Int)?(k?)(z?)")>; def SKXWriteResGroup60 : SchedWriteRes<[SKXPort0,SKXPort5]> { let Latency = 5; @@ -3123,7 +3123,7 @@ def: InstRW<[SKXWriteResGroup61], (instregex "VCVTSI2SDrr")>; def: InstRW<[SKXWriteResGroup61], (instregex "VCVTSI2SSZrr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup61], (instregex "VCVTSI2SSrr")>; def: InstRW<[SKXWriteResGroup61], (instregex "VCVTSI642SDZrr(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup61], (instregex "VCVTSS2SDZrr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup61], (instregex "VCVTSS2SDZrr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup61], (instregex "VCVTSS2SDrr")>; def: InstRW<[SKXWriteResGroup61], (instregex "VCVTTPD2DQZ128rr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup61], (instregex "VCVTTPD2DQrr")>; @@ -4995,8 +4995,8 @@ def: InstRW<[SKXWriteResGroup136], (instregex "VALIGNDZ128rm(b?)i(k?)(z?)")>; def: InstRW<[SKXWriteResGroup136], (instregex "VALIGNQZ128rm(b?)i(k?)(z?)")>; def: InstRW<[SKXWriteResGroup136], (instregex "VCMPPDZ128rm(b?)i(k?)(z?)")>; def: InstRW<[SKXWriteResGroup136], (instregex "VCMPPSZ128rm(b?)i(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup136], (instregex "VCMPSDZrm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup136], (instregex "VCMPSSZrm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup136], (instregex "VCMPSDZrm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup136], (instregex "VCMPSSZrm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup136], (instregex "VDBPSADBWZ128rmi(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup136], (instregex "VFPCLASSSSrm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup136], (instregex "VPCMPBZ128rmi(b?)(k?)(z?)")>; @@ -5411,8 +5411,8 @@ def: InstRW<[SKXWriteResGroup149], (instregex "VADDPDZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VADDPDrm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VADDPSZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VADDPSrm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VADDSDZrm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VADDSSZrm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VADDSDZrm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VADDSSZrm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VADDSUBPDrm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VADDSUBPSrm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VCMPPDrmi")>; @@ -5431,7 +5431,7 @@ def: InstRW<[SKXWriteResGroup149], (instregex "VCVTPS2QQZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VCVTPS2UDQZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VCVTPS2UQQZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VCVTQQ2PDZ128rm(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VCVTSS2SDZrm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VCVTSS2SDZrm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VCVTSS2SDrm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VCVTTPD2QQZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VCVTTPD2UQQZ128rm(b?)(k?)(z?)")>; @@ -5451,20 +5451,20 @@ def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD132PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD132PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD132PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD132PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD132SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD132SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD132SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD132SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD213PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD213PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD213PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD213PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD213SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD213SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD213SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD213SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD231PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD231PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD231PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD231PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD231SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD231SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD231SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMADD231SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADDSUB132PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADDSUB132PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMADDSUB132PSZ128m(b?)(k?)(z?)")>; @@ -5481,20 +5481,20 @@ def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB132PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB132PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB132PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB132PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB132SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB132SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB132SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB132SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB213PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB213PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB213PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB213PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB213SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB213SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB213SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB213SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB231PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB231PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB231PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB231PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB231SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB231SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB231SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUB231SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUBADD132PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUBADD132PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFMSUBADD132PSZ128m(b?)(k?)(z?)")>; @@ -5511,38 +5511,38 @@ def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD132PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD132PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD132PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD132PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD132SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD132SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD132SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD132SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD213PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD213PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD213PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD213PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD213SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD213SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD213SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD213SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD231PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD231PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD231PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD231PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD231SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD231SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD231SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMADD231SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB132PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB132PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB132PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB132PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB132SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB132SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB132SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB132SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB213PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB213PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB213PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB213PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB213SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB213SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB213SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB213SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB231PDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB231PDm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB231PSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB231PSm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB231SDZm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB231SSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB231SDZm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VFNMSUB231SSZm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VGETEXPPDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VGETEXPPSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VGETEXPSDm(b?)(k?)(z?)")>; @@ -5555,20 +5555,20 @@ def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)PDZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)PDrm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)PSZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)PSrm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)SDZrm(_Int)?(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)SSZrm(_Int)?(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)SDZrm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VMAX(C?)SSZrm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)PDZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)PDrm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)PSZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)PSrm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)SDZrm(_Int)?(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)SSZrm(_Int)?(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)SDZrm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VMIN(C?)SSZrm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMULPDZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMULPDrm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMULPSZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VMULPSrm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VMULSDZrm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VMULSSZrm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VMULSDZrm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VMULSSZrm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VPHMINPOSUWrm128")>; def: InstRW<[SKXWriteResGroup149], (instregex "VPLZCNTDZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VPLZCNTQZ128rm(b?)(k?)(z?)")>; @@ -5604,8 +5604,8 @@ def: InstRW<[SKXWriteResGroup149], (instregex "VSUBPDZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VSUBPDrm")>; def: InstRW<[SKXWriteResGroup149], (instregex "VSUBPSZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup149], (instregex "VSUBPSrm")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VSUBSDZrm_Int(b?)(k?)(z?)")>; -def: InstRW<[SKXWriteResGroup149], (instregex "VSUBSSZrm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VSUBSDZrm(_Int)?(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup149], (instregex "VSUBSSZrm(_Int)?(k?)(z?)")>; def SKXWriteResGroup150 : SchedWriteRes<[SKXPort0]> { let Latency = 10; @@ -5701,7 +5701,7 @@ def: InstRW<[SKXWriteResGroup159], (instregex "VDIVPSYrr")>; def: InstRW<[SKXWriteResGroup159], (instregex "VDIVPSZ128rr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup159], (instregex "VDIVPSZ256rr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup159], (instregex "VDIVPSrr")>; -def: InstRW<[SKXWriteResGroup159], (instregex "VDIVSSZrr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup159], (instregex "VDIVSSZrr(_Int)?(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup159], (instregex "VDIVSSrr")>; def SKXWriteResGroup160 : SchedWriteRes<[SKXPort0,SKXPort23]> { @@ -5981,7 +5981,7 @@ def SKXWriteResGroup163 : SchedWriteRes<[SKXPort23,SKXPort015]> { let NumMicroOps = 3; let ResourceCycles = [1,2]; } -def: InstRW<[SKXWriteResGroup163], (instregex "VCVTSD2SSZrm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup163], (instregex "VCVTSD2SSZrm(_Int)?(k?)(z?)")>; def SKXWriteResGroup164 : SchedWriteRes<[SKXPort0,SKXPort5,SKXPort23]> { let Latency = 11; @@ -6084,7 +6084,7 @@ def: InstRW<[SKXWriteResGroup172], (instregex "VSQRTPSYr")>; def: InstRW<[SKXWriteResGroup172], (instregex "VSQRTPSZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup172], (instregex "VSQRTPSZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup172], (instregex "VSQRTPSr")>; -def: InstRW<[SKXWriteResGroup172], (instregex "VSQRTSSZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup172], (instregex "VSQRTSSZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup172], (instregex "VSQRTSSr")>; def SKXWriteResGroup173 : SchedWriteRes<[SKXPort5,SKXPort23]> { @@ -6205,7 +6205,7 @@ def: InstRW<[SKXWriteResGroup184], (instregex "VDIVPDYrr")>; def: InstRW<[SKXWriteResGroup184], (instregex "VDIVPDZ128rr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup184], (instregex "VDIVPDZ256rr(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup184], (instregex "VDIVPDrr")>; -def: InstRW<[SKXWriteResGroup184], (instregex "VDIVSDZrr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup184], (instregex "VDIVSDZrr(_Int)?(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup184], (instregex "VDIVSDrr")>; def SKXWriteResGroup185 : SchedWriteRes<[SKXPort0,SKXPort23]> { @@ -6373,7 +6373,7 @@ def: InstRW<[SKXWriteResGroup201], (instregex "DIVPSrm")>; def: InstRW<[SKXWriteResGroup201], (instregex "SQRTSSm")>; def: InstRW<[SKXWriteResGroup201], (instregex "VDIVPSZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup201], (instregex "VDIVPSrm")>; -def: InstRW<[SKXWriteResGroup201], (instregex "VDIVSSZrm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup201], (instregex "VDIVSSZrm(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup201], (instregex "VSQRTSSm")>; def SKXWriteResGroup202 : SchedWriteRes<[SKXPort0,SKXPort1,SKXPort5,SKXPort6,SKXPort05,SKXPort0156]> { @@ -6394,7 +6394,7 @@ def: InstRW<[SKXWriteResGroup203], (instregex "VSQRTPDYr")>; def: InstRW<[SKXWriteResGroup203], (instregex "VSQRTPDZ128r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup203], (instregex "VSQRTPDZ256r(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup203], (instregex "VSQRTPDr")>; -def: InstRW<[SKXWriteResGroup203], (instregex "VSQRTSDZr_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup203], (instregex "VSQRTSDZr(b?)(_Int)?(k?)(z?)")>; def: InstRW<[SKXWriteResGroup203], (instregex "VSQRTSDr")>; def SKXWriteResGroup204 : SchedWriteRes<[SKXPort0,SKXPort23]> { @@ -6407,7 +6407,7 @@ def: InstRW<[SKXWriteResGroup204], (instregex "VDIVPSYrm")>; def: InstRW<[SKXWriteResGroup204], (instregex "VDIVPSZ256rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup204], (instregex "VSQRTPSZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup204], (instregex "VSQRTPSm")>; -def: InstRW<[SKXWriteResGroup204], (instregex "VSQRTSSZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup204], (instregex "VSQRTSSZm(_Int)?(k?)(z?)")>; def SKXWriteResGroup205 : SchedWriteRes<[SKXPort23,SKXPort015]> { let Latency = 18; @@ -6506,7 +6506,7 @@ def SKXWriteResGroup216 : SchedWriteRes<[SKXPort0,SKXPort23]> { def: InstRW<[SKXWriteResGroup216], (instregex "DIVPDrm")>; def: InstRW<[SKXWriteResGroup216], (instregex "VDIVPDZ128rm(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup216], (instregex "VDIVPDrm")>; -def: InstRW<[SKXWriteResGroup216], (instregex "VDIVSDZrm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup216], (instregex "VDIVSDZrm(_Int)?(k?)(z?)")>; def SKXWriteResGroup217 : SchedWriteRes<[SKXPort5,SKXPort23,SKXPort015]> { let Latency = 20; @@ -6656,7 +6656,7 @@ def SKXWriteResGroup229 : SchedWriteRes<[SKXPort0,SKXPort23]> { def: InstRW<[SKXWriteResGroup229], (instregex "SQRTPDm")>; def: InstRW<[SKXWriteResGroup229], (instregex "VSQRTPDZ128m(b?)(k?)(z?)")>; def: InstRW<[SKXWriteResGroup229], (instregex "VSQRTPDm")>; -def: InstRW<[SKXWriteResGroup229], (instregex "VSQRTSDZm_Int(b?)(k?)(z?)")>; +def: InstRW<[SKXWriteResGroup229], (instregex "VSQRTSDZm(_Int)?(k?)(z?)")>; def SKXWriteResGroup230 : SchedWriteRes<[SKXPort0,SKXPort23,SKXPort015]> { let Latency = 24; diff --git a/test/CodeGen/X86/recip-fastmath2.ll b/test/CodeGen/X86/recip-fastmath2.ll index 8ca1d9b8fe8..204d7dffd53 100644 --- a/test/CodeGen/X86/recip-fastmath2.ll +++ b/test/CodeGen/X86/recip-fastmath2.ll @@ -380,12 +380,12 @@ define float @f32_two_step_2(float %x) #2 { ; ; SKX-LABEL: f32_two_step_2: ; SKX: # %bb.0: -; SKX-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero sched: [5:0.50] -; SKX-NEXT: vrcpss %xmm0, %xmm0, %xmm2 # sched: [4:1.00] -; SKX-NEXT: vmovaps %xmm2, %xmm3 # sched: [1:0.33] -; SKX-NEXT: vfnmadd213ss %xmm1, %xmm0, %xmm3 # sched: [4:0.33] -; SKX-NEXT: vfmadd132ss %xmm2, %xmm2, %xmm3 # sched: [4:0.33] -; SKX-NEXT: vfnmadd213ss %xmm1, %xmm3, %xmm0 # sched: [4:0.33] +; SKX-NEXT: vrcpss %xmm0, %xmm0, %xmm1 # sched: [4:1.00] +; SKX-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero sched: [5:0.50] +; SKX-NEXT: vmovaps %xmm1, %xmm3 # sched: [1:0.33] +; SKX-NEXT: vfnmadd213ss %xmm2, %xmm0, %xmm3 # sched: [4:0.33] +; SKX-NEXT: vfmadd132ss %xmm1, %xmm1, %xmm3 # sched: [4:0.33] +; SKX-NEXT: vfnmadd213ss %xmm2, %xmm3, %xmm0 # sched: [4:0.33] ; SKX-NEXT: vfmadd132ss %xmm3, %xmm3, %xmm0 # sched: [4:0.33] ; SKX-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm0 # sched: [9:0.50] ; SKX-NEXT: retq # sched: [7:1.00] -- 2.50.1