Index: lib/Target/X86/Unsupported.td =================================================================== --- lib/Target/X86/Unsupported.td +++ lib/Target/X86/Unsupported.td @@ -0,0 +1,32 @@ +//=- X86ScheduleBtVer2.td - X86 BtVer2 (Jaguar) Scheduling ---*- tablegen -*-=// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines instructions which are not supported on some CPUs but should be +// described inside the machine model +// +//===----------------------------------------------------------------------===// + +//////////////////////////////////////////////////////////////////////////////// +// AVX2 - unsupported on Jaguar and others... +//////////////////////////////////////////////////////////////////////////////// + +defm : UnsupportedWriteResPair; +defm : UnsupportedWriteResPair; +defm : UnsupportedWriteResPair; +defm : UnsupportedWriteResPair< WriteVarShuffle256>; +defm : UnsupportedWriteResPair; +defm : UnsupportedWriteResPair; + +//////////////////////////////////////////////////////////////////////////////// +// FMA - unsupported on Jaguar and others... +//////////////////////////////////////////////////////////////////////////////// + +defm : UnsupportedWriteResPair; +defm : UnsupportedWriteResPair; +defm : UnsupportedWriteResPair; Index: lib/Target/X86/X86Schedule.td =================================================================== --- lib/Target/X86/X86Schedule.td +++ lib/Target/X86/X86Schedule.td @@ -49,6 +49,11 @@ } } +multiclass UnsupportedWriteResPair { + def : WriteRes { let Unsupported = 1; } + def : WriteRes { let Unsupported = 1; } +} + // Multiclass that wraps X86FoldableSchedWrite for each vector width. class X86SchedWriteWidths; defm : JWriteResFpuPair; defm : JWriteResYMMPair; -defm : JWriteResFpuPair; // NOTE: Doesn't exist on Jaguar. -defm : JWriteResFpuPair; // NOTE: Doesn't exist on Jaguar. -defm : JWriteResFpuPair; // NOTE: Doesn't exist on Jaguar. defm : JWriteResFpuPair; defm : JWriteResFpuPair; defm : JWriteResYMMPair; @@ -358,8 +355,6 @@ defm : JWriteResYMMPair; defm : JWriteResFpuPair; defm : JWriteResYMMPair; -defm : JWriteResFpuPair; -defm : JWriteResFpuPair; // NOTE: Doesn't exist on Jaguar. //////////////////////////////////////////////////////////////////////////////// // Conversions. @@ -457,10 +452,6 @@ defm : JWriteResFpuPair; // NOTE: Doesn't exist on Jaguar. defm : JWriteResFpuPair; defm : JWriteResYMMPair; -defm : JWriteResFpuPair; -defm : JWriteResFpuPair; // NOTE: Doesn't exist on Jaguar. -defm : JWriteResFpuPair; // NOTE: Doesn't exist on Jaguar. -defm : JWriteResFpuPair; // NOTE: Doesn't exist on Jaguar. //////////////////////////////////////////////////////////////////////////////// // Vector insert/extract operations. @@ -578,4 +569,8 @@ def : InstRW<[JWriteVZeroIdiom], (instrs PXORrr, VPXORrr)>; +// Get unsupported resources which we are not implementing in Jaguar +// +include "Unsupported.td" + } // SchedModel