Displaying 2 results from an estimated 2 matches for "isscalarwithpredication".
2018 Sep 25
2
Unsafe floating point operation (FDiv & FRem) in LoopVectorizer
...the integer type then it generates the right code, where div is predicated based on the mask, and scalar div gets generated for each lane.
This seems like a problem in predicate instruction detection part of LV, currently it considers only UDiv, SDiv, URem, SRem.
bool LoopVectorizationCostModel::isScalarWithPredication(Instruction *I, unsigned VF) {
if (!Legal->blockNeedsPredication(I->getParent()))
return false;
switch(I->getOpcode()) {
default:
break;
case Instruction::UDiv: <- Floating point operations not considered i.e FDiv & FRem
case Instruction::SDiv:
case Instruction:...
2017 Mar 17
3
LoopVectorizer with ifconversion
On 17 March 2017 at 16:34, Hal Finkel <hfinkel at anl.gov> wrote:
> In general, this is true everywhere. In a large vectorized loop, this cost
> may well be worthwhile. The idea is that the cost model should account for
> all of these costs. If it doesn't properly, we should fix that.
Isn't this only worth when the SIMD instructions can be
conditionalised per lane? I