1//===- X86InstrGISel.td - X86 GISel target specific opcodes -*- tablegen -*===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// X86 GlobalISel target pseudo instruction definitions. This is kept 10// separately from the other tablegen files for organizational purposes, but 11// share the same infrastructure. 12// 13//===----------------------------------------------------------------------===// 14 15class X86GenericInstruction : GenericInstruction { let Namespace = "X86"; } 16 17def G_FILD : X86GenericInstruction { 18 let OutOperandList = (outs type0:$dst); 19 let InOperandList = (ins ptype1:$src); 20 let hasSideEffects = false; 21 let mayLoad = true; 22} 23def G_FIST : X86GenericInstruction { 24 let OutOperandList = (outs); 25 let InOperandList = (ins type0:$src1, ptype1:$src2); 26 let hasSideEffects = false; 27 let mayStore = true; 28} 29 30def G_FNSTCW16 : X86GenericInstruction { 31 let OutOperandList = (outs); 32 let InOperandList = (ins ptype0:$dst); 33 let hasSideEffects = true; 34 let mayStore = true; 35} 36 37def : GINodeEquiv<G_FILD, X86fild>; 38def : GINodeEquiv<G_FIST, X86fp_to_mem>; 39def : GINodeEquiv<G_FNSTCW16, X86fp_cwd_get16>; 40