Displaying 3 results from an estimated 3 matches for "fma3s_rm".
2012 Nov 16
2
[LLVMdev] Operand order in dag pattern matching in td files
....r.t the order of operands used in dag
pattern matching in target files. Some of them seem intuitive. But I
want to get it clarified anyway. I am using a pattern from
X86InstrFMA.td in the below example. Consider FMA3 pattern
(simplified).
let Constraints = "$src1 = $dst" in {
multiclass fma3s_rm<bits<8> opc, string OpcodeStr, X86MemOperand x86memop,
RegisterClass RC, ValueType OpVT, PatFrag mem_frag,
SDPatternOperator OpNode = null_frag> {
def r : FMA3<opc, MRMSrcReg, (outs RC:$dst),
(ins RC:$src1, RC:$src2, R...
2012 Nov 16
1
[LLVMdev] Operand order in dag pattern matching in td files
...ve unfortunately chosen a complex example.
Your second question is needs be answered first. null_frag causes the
pattern to be dropped.
Now having covered that the reason the operands are in the order they are
is because the only instruction that doesn't use null_frag is this one
defm r213 : fma3s_rm<opc213, !strconcat(OpStr, !strconcat("213", PackTy)),
x86memop, RC, OpVT, mem_frag, OpNode>
Which specifies the operand order as 213 thus why they are 2, 1, 3 in the
pattern.
~Craig
On Fri, Nov 16, 2012 at 12:19 AM, Anitha B Gollamudi <
anitha.boyapati at...
2012 Nov 16
0
[LLVMdev] Operand order in dag pattern matching in td files
...dag
> pattern matching in target files. Some of them seem intuitive. But I
> want to get it clarified anyway. I am using a pattern from
> X86InstrFMA.td in the below example. Consider FMA3 pattern
> (simplified).
>
> let Constraints = "$src1 = $dst" in {
> multiclass fma3s_rm<bits<8> opc, string OpcodeStr, X86MemOperand x86memop,
> RegisterClass RC, ValueType OpVT, PatFrag mem_frag,
> SDPatternOperator OpNode = null_frag> {
>
> def r : FMA3<opc, MRMSrcReg, (outs RC:$dst),
> (i...