search for: s_abs_i32

Displaying 3 results from an estimated 3 matches for "s_abs_i32".

2020 Oct 12
3
Manipulating DAGs in TableGen
...=x, otherArgName=y)"). However, this is _not_ how >$names work! > >Their most prominent application is for instruction selection pattern >matching, e.g. taken at random from AMDGPU/SOPInstructions.td: > >def : GCNPat < > (i32 (smax i32:$x, (i32 (ineg i32:$x)))), > (S_ABS_I32 SReg_32:$x) >>; > >The $x is _not_ the name of the argument to smax, ineg, or S_ABS_I32. >For example, if you look at how S_ABS_I32 is defined, you'll see that >its input operand is called $src0. > >Instead, the name allows us to tie three locations in the DAG together &...
2020 Oct 12
2
Manipulating DAGs in TableGen
I included the ability to get/set an operand by name because I thought it would be easier to copy+modify an existing DAG by specifying the name of the operand you want to replace rather than having to remember its position. For example, if you want to replace the first source, isn't it easier to specify $src than remember it's the second operand? Perhaps the people actually coding these
2020 Oct 13
5
Manipulating DAGs in TableGen
...es work! >> > >> >Their most prominent application is for instruction selection pattern >> >matching, e.g. taken at random from AMDGPU/SOPInstructions.td: >> > >> >def : GCNPat < >> > (i32 (smax i32:$x, (i32 (ineg i32:$x)))), >> > (S_ABS_I32 SReg_32:$x) >> >>; >> > >> >The $x is _not_ the name of the argument to smax, ineg, or S_ABS_I32. >> >For example, if you look at how S_ABS_I32 is defined, you'll see that >> >its input operand is called $src0. >> > >> >Instead,...