Displaying 2 results from an estimated 2 matches for "luioripr".
Did you mean:
luioripred
2018 Mar 09
0
[SelectionDAG] [TargetOp] How to get sub-half of immediate?
...mp; 0xFFFF);
}]>;
The above fragment will take an immediate node and get the lower 16 bits.
// Transformation Function - get the higher 16 bits.
def HI16 : SDNodeXForm<imm, [{
return getImm(N, (N->getZExtValue() >> 16) & 0xFFFF);
}]>;
Similarly, get the high 16 bits.
def LUiORiPred : PatLeaf<(imm), [{
int64_t SVal = N->getSExtValue();
return isInt<32>(SVal) && (SVal & 0xffff);
}]>;
For completeness sake I've included this, but it's return true there are bits in both
16 bit fragments.
Then we use (here VT = i32, ORiOp is our logical...
2018 Mar 09
2
[SelectionDAG] [TargetOp] How to get sub-half of immediate?
Hi all,
This seems like a dumb question but while setting up a pattern in TD
file, I got stuck on trying to get each half of an immediate as the
half-sized type (ie. i64 imm -> pair of i32 imm's). Is there an existing
way to do it? I've tried the 'EXTRACT_SUBREG' but that seems to error at
the end of scheduling. Looking at Target.td, I'm not sure which opcode
is meant