diff --git a/llvm/lib/Target/X86/CMakeLists.txt b/llvm/lib/Target/X86/CMakeLists.txt --- a/llvm/lib/Target/X86/CMakeLists.txt +++ b/llvm/lib/Target/X86/CMakeLists.txt @@ -11,7 +11,7 @@ tablegen(LLVM X86GenEVEX2VEXTables.inc -gen-x86-EVEX2VEX-tables) tablegen(LLVM X86GenExegesis.inc -gen-exegesis) tablegen(LLVM X86GenFastISel.inc -gen-fast-isel) -tablegen(LLVM X86GenGlobalISel.inc -gen-global-isel) +tablegen(LLVM X86GenGlobalISel.inc -gen-global-isel -warn-on-unused-entities) tablegen(LLVM X86GenInstrInfo.inc -gen-instr-info -instr-info-expand-mi-operand-info=0) tablegen(LLVM X86GenMnemonicTables.inc -gen-x86-mnemonic-tables -asmwriternum=1) diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -371,17 +371,6 @@ IntelSrcAsm, RHS, IsCommutable, IsKCommutable, X86selects_mask, MaskOnly>; -multiclass AVX512_maskable_in_asm O, Format F, X86VectorVTInfo _, - dag Outs, dag Ins, - string OpcodeStr, - string AttSrcAsm, string IntelSrcAsm, - list Pattern> : - AVX512_maskable_custom; - multiclass AVX512_maskable_3src_in_asm O, Format F, X86VectorVTInfo _, dag Outs, dag NonTiedIns, string OpcodeStr, diff --git a/llvm/lib/Target/X86/X86InstrFormats.td b/llvm/lib/Target/X86/X86InstrFormats.td --- a/llvm/lib/Target/X86/X86InstrFormats.td +++ b/llvm/lib/Target/X86/X86InstrFormats.td @@ -573,26 +573,14 @@ // SSE1 Instruction Templates: // -// SSI - SSE1 instructions with XS prefix. // PSI - SSE1 instructions with PS prefix. -// PSIi8 - SSE1 instructions with ImmT == Imm8 and PS prefix. // VSSI - SSE1 instructions with XS prefix in AVX form. // VPSI - SSE1 instructions with PS prefix in AVX form, packed single. -class SSI o, Format F, dag outs, dag ins, string asm, - list pattern> - : I, XS, Requires<[UseSSE1]>; -class SSIi8 o, Format F, dag outs, dag ins, string asm, - list pattern> - : Ii8, XS, Requires<[UseSSE1]>; class PSI o, Format F, dag outs, dag ins, string asm, list pattern> : I, PS, Requires<[UseSSE1]>; -class PSIi8 o, Format F, dag outs, dag ins, string asm, - list pattern> - : Ii8, PS, - Requires<[UseSSE1]>; class VSSI o, Format F, dag outs, dag ins, string asm, list pattern> : I, XS, @@ -605,7 +593,6 @@ // SSE2 Instruction Templates: // // SDI - SSE2 instructions with XD prefix. -// SDIi8 - SSE2 instructions with ImmT == Imm8 and XD prefix. // S2SI - SSE2 instructions with XS prefix. // SSDIi8 - SSE2 instructions with ImmT == Imm8 and XS prefix. // PDI - SSE2 instructions with PD prefix, packed double domain. @@ -623,15 +610,9 @@ class SDI o, Format F, dag outs, dag ins, string asm, list pattern> : I, XD, Requires<[UseSSE2]>; -class SDIi8 o, Format F, dag outs, dag ins, string asm, - list pattern> - : Ii8, XD, Requires<[UseSSE2]>; class S2SI o, Format F, dag outs, dag ins, string asm, list pattern> : I, XS, Requires<[UseSSE2]>; -class S2SIi8 o, Format F, dag outs, dag ins, string asm, - list pattern> - : Ii8, XS, Requires<[UseSSE2]>; class PDI o, Format F, dag outs, dag ins, string asm, list pattern> : I, PD, @@ -805,10 +786,6 @@ list pattern> : I, XS, Requires<[HasAVX512]>; -class AVX512XDI o, Format F, dag outs, dag ins, string asm, - list pattern> - : I, XD, - Requires<[HasAVX512]>; class AVX512BI o, Format F, dag outs, dag ins, string asm, list pattern> : I, PD, @@ -816,10 +793,6 @@ class AVX512BIBase : PD { Domain ExeDomain = SSEPackedInt; } -class AVX512BIi8 o, Format F, dag outs, dag ins, string asm, - list pattern> - : Ii8, PD, - Requires<[HasAVX512]>; class AVX512BIi8Base : PD { Domain ExeDomain = SSEPackedInt; ImmType ImmT = Imm8; @@ -859,16 +832,9 @@ list pattern> : I, PS, Requires<[HasAVX512]>; -class AVX512PIi8 o, Format F, dag outs, dag ins, string asm, - list pattern, Domain d> - : Ii8, Requires<[HasAVX512]>; class AVX512PI o, Format F, dag outs, dag ins, string asm, list pattern, Domain d> : I, Requires<[HasAVX512]>; -class AVX512FMA3S o, Format F, dag outs, dag ins, string asm, - listpattern> - : I, T8PD, - EVEX_4V, Requires<[HasAVX512]>; class AVX512 o, Format F, dag outs, dag ins, string asm, listpattern> @@ -979,11 +945,8 @@ // MMXI - MMX instructions with TB prefix. // MMXI32 - MMX instructions with TB prefix valid only in 32 bit mode. // MMXI64 - MMX instructions with TB prefix valid only in 64 bit mode. -// MMX2I - MMX / SSE2 instructions with PD prefix. // MMXIi8 - MMX instructions with ImmT == Imm8 and PS prefix. // MMXIi8 - MMX instructions with ImmT == Imm8 and PS prefix. -// MMXID - MMX instructions with XD prefix. -// MMXIS - MMX instructions with XS prefix. class MMXI o, Format F, dag outs, dag ins, string asm, list pattern> : I, PS, Requires<[HasMMX]>; @@ -997,15 +960,6 @@ list pattern> : I, PS, REX_W, Requires<[HasMMX,In64BitMode]>; -class MMX2I o, Format F, dag outs, dag ins, string asm, - list pattern> - : I, PD, Requires<[HasMMX]>; class MMXIi8 o, Format F, dag outs, dag ins, string asm, list pattern> : Ii8, PS, Requires<[HasMMX]>; -class MMXID o, Format F, dag outs, dag ins, string asm, - list pattern> - : Ii8, XD, Requires<[HasMMX]>; -class MMXIS o, Format F, dag outs, dag ins, string asm, - list pattern> - : Ii8, XS, Requires<[HasMMX]>; diff --git a/llvm/lib/Target/X86/X86InstrSSE.td b/llvm/lib/Target/X86/X86InstrSSE.td --- a/llvm/lib/Target/X86/X86InstrSSE.td +++ b/llvm/lib/Target/X86/X86InstrSSE.td @@ -5976,33 +5976,6 @@ Sched<[sched.Folded, sched.ReadAfterFold]>; } -/// SS41I_binop_rmi - SSE 4.1 binary operator with 8-bit immediate -multiclass SS41I_binop_rmi opc, string OpcodeStr, SDNode OpNode, - ValueType OpVT, RegisterClass RC, PatFrag memop_frag, - X86MemOperand x86memop, bit Is2Addr, - X86FoldableSchedWrite sched> { - let isCommutable = 1 in - def rri : SS4AIi8, - Sched<[sched]>; - def rmi : SS4AIi8, - Sched<[sched.Folded, sched.ReadAfterFold]>; -} - def BlendCommuteImm2 : SDNodeXFormgetZExtValue() & 0x03; return getI8Imm(Imm ^ 0x03, SDLoc(N));