Displaying 2 results from an estimated 2 matches for "loadv2f64".
Did you mean:
loadf64
2014 Sep 18
3
[LLVMdev] predicates vs. requirements [TableGen, X86InstrInfo.td]
...quires<[OptForSize**]>*;
But this does:
* let Predicates = [OptForSize] in* {
def : Pat<(v2f64 (X86VBroadcast (loadf64 addr:$src))), (VMOVDDUPrm addr
:$src)>;
}
I see both forms used on some patterns like this:
* let Predicates = [HasAVX] *in {
def : Pat<(X86Movddup (loadv2f64 addr:$src)),
(VMOVDDUPrm addr:$src)>, *Requires<[HasAVX]>*;
}
Is a predicate different than a requirement or is this a bug?
There are existing patterns that specify 'OptForSize' with "Requires", but
they are not behaving as I expected.
Example:
// For...
2014 Sep 19
2
[LLVMdev] predicates vs. requirements [TableGen, X86InstrInfo.td]
...rSize] in* {
> > def : Pat<(v2f64 (X86VBroadcast (loadf64 addr:$src))), (VMOVDDUPrm
> addr
> > :$src)>;
> > }
> >
> > I see both forms used on some patterns like this:
> > * let Predicates = [HasAVX] *in {
> > def : Pat<(X86Movddup (loadv2f64 addr:$src)),
> > (VMOVDDUPrm addr:$src)>, *Requires<[HasAVX]>*;
> > }
> >
> > Is a predicate different than a requirement or is this a bug?
> >
> > There are existing patterns that specify 'OptForSize' with "Requires", b...