Poor loop optimization in BilinearInterpol benchmark #31831
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
optimization
tenet-performance
Performance related issue
Milestone
The
Vector<T>
version of this benchmark (BilinearInterpol_Vector
) has a number of weaknesses:First, although the temporary array
doubleTemp
is allocated with a constant length:The loop cloning code is unable to determine
V24.length
:So it decides to clone the loop, AFAICT so that it can eliminate the range check on
doubleTemp
, but then it eliminates it from both clones so we have identical loops. Furthermore, although the exact loop count is available, none of the 4 original loops, nor their identical clones, are unrolled.category:cq
theme:loop-opt
skill-level:expert
cost:large
The text was updated successfully, but these errors were encountered: