Lines Matching refs:FMA
1 //===-- X86InstrFMA.td - FMA Instruction Set ---------------*- tablegen -*-===//
9 // This file describes FMA (Fused Multiply-Add) instructions.
17 // For all FMA opcodes declared in fma3p_rm_* and fma3s_rm_* multiclasses
23 // FMA*213*:
27 // FMA*132*:
31 // FMA*231*:
168 // All source register operands of FMA opcodes defined in fma3s_rm multiclass
170 // adjustment, for example, commuting the operands 1 and 2 in FMA*132 form
171 // would require an opcode change to FMA*231:
172 // FMA*132* reg1, reg2, reg3; // reg1 * reg3 + reg2;
174 // FMA*231* reg2, reg1, reg3; // reg1 * reg3 + reg2;
254 // These FMA*_Int instructions are defined specially for being used when
255 // the scalar FMA intrinsics are lowered to machine instructions, and in that
259 // All of the FMA*_Int opcodes are defined as commutable here.
262 // Commuting the 1st operand of FMA*_Int requires some additional analysis,
263 // the commute optimization is legal only if all users of FMA*_Int use only
264 // the lowest element of the FMA*_Int instruction. Even though such analysis
286 // The FMA 213 form is created for lowering of scalar FMA intrinscis
288 // The FMA 132 form can trivially be get by commuting the 2nd and 3rd operands
289 // of FMA 213 form.
290 // The FMA 231 form can be get only by commuting the 1st operand of 213 or 132
293 // form of FMA*_Int instructions is done using an optimistic assumption that