[PATCH] [PPC64LE] Remove unnecessary swaps from lane-insensitive vector computations
hfinkel at anl.gov
hfinkel at anl.gov
Sat Apr 25 03:01:13 PDT 2015
This looks good, but we need to get rid of the
let BaseName = "BLA" in
def BLA: XForm_n<whatever...>
pattern. Here's one way to do it:
Change the definition of LaneSensitive to something like this:
class LaneSensitive {
bit SwapFlag = 1;
string BaseName = NAME;
}
(this is similar to what MUBUFAddr64Table does in R600/SIInstrInfo.td).
Now the problem is that LaneSensitive will only work properly when used inside of a multiclass definition. For that, you'll need some multclass wrappers for the XForm classes (we already have a few of these, see the definition of XForm_6r and friends in PPCInstrInfo.td). We can then make the multiclass something like this:
multiclass XForm_nls<whatever...> {
def NAME : XForm_n<whatever...>, LaneSensitive;
}
and then you just need to change the definitions of the lane-sensitive instructions to something like:
defm BLA : XForm_nls<whatever...>
REPOSITORY
rL LLVM
http://reviews.llvm.org/D8565
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list