]> granicus.if.org Git - llvm/commitdiff
[X86][AVX[ Tag VZEROALL/VZEROUPPER instructions scheduler classes
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 10 Dec 2017 12:26:35 +0000 (12:26 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 10 Dec 2017 12:26:35 +0000 (12:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320302 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSSE.td
lib/Target/X86/X86Schedule.td

index 2dbe5e6f397d0b11470f9ed8d424cab8f3497428..30edf49f3159e72f72382ee73cbee62f0bcec53c 100644 (file)
@@ -7822,16 +7822,20 @@ def : Pat<(v4i64 (X86VPerm2x128 (loadv4i64 addr:$src2),
 // VZERO - Zero YMM registers
 //
 // Note, these instruction do not affect the YMM16-YMM31.
+let SchedRW = [WriteSystem] in {
 let Defs = [YMM0, YMM1, YMM2, YMM3, YMM4, YMM5, YMM6, YMM7,
             YMM8, YMM9, YMM10, YMM11, YMM12, YMM13, YMM14, YMM15] in {
   // Zero All YMM registers
   def VZEROALL : I<0x77, RawFrm, (outs), (ins), "vzeroall",
-                  [(int_x86_avx_vzeroall)]>, PS, VEX, VEX_L, Requires<[HasAVX]>, VEX_WIG;
+                  [(int_x86_avx_vzeroall)], IIC_AVX_ZERO>, PS, VEX, VEX_L,
+                  Requires<[HasAVX]>, VEX_WIG;
 
   // Zero Upper bits of YMM registers
   def VZEROUPPER : I<0x77, RawFrm, (outs), (ins), "vzeroupper",
-                     [(int_x86_avx_vzeroupper)]>, PS, VEX, Requires<[HasAVX]>, VEX_WIG;
-}
+                     [(int_x86_avx_vzeroupper)], IIC_AVX_ZERO>, PS, VEX,
+                     Requires<[HasAVX]>, VEX_WIG;
+} // Defs
+} // SchedRW
 
 //===----------------------------------------------------------------------===//
 // Half precision conversion instructions
index bad3b7fc09152fec3b29f6f258dbf03160ec6f21..5709e1a030754ce364ae3902e227b34e588f6c09 100644 (file)
@@ -394,6 +394,8 @@ def IIC_SSE_CVT_SS2SI64_RR : InstrItinClass;
 def IIC_SSE_CVT_SD2SI_RM : InstrItinClass;
 def IIC_SSE_CVT_SD2SI_RR : InstrItinClass;
 
+def IIC_AVX_ZERO : InstrItinClass;
+
 // MMX
 def IIC_MMX_MOV_MM_RM : InstrItinClass;
 def IIC_MMX_MOV_REG_MM : InstrItinClass;