-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AIE2] New vector custom post combiners #195
Conversation
QoR results:
|
unsigned FirstOperand; | ||
// Number of non-register operands. | ||
unsigned NumOfNonRegOperands; | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Always nice to get more semantics shared between our AIE versions!
GIntrinsic &SrcMIIntrinsic = cast<GIntrinsic>(SrcMI); | ||
|
||
if (const auto ConcatOp = | ||
TII.getVConcatOpInfo(SrcMIIntrinsic.getIntrinsicID())) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about supporting G_CONCAT_VECTOR
in TII.getVConcatOpInfo
? Then there's a single test to do here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking about, and this raises 2 design decisions:
1 - If we handle the G_CONCAT_VECTOR
(common to all subtargets) in the base class, we will loose the ability to detect that the implementation is missing for new subtargets (we will remove the unreachable
).
2 - If we implement this in the target derived class, we should replicate the implementation in all targets, or at least we can have a method that only detects G_CONCAT_VECTOR
in the base class, that can be called by getVConcatOpInfo
in the subtarget implementation.
What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that I'd have a base version of getVConcatOpInfo
that only understands G_CONCAT_VECTOR
, and hope that future versions don't even introduce all those upd/ext/concat intrinsics ;)
FYI @konstantinschwarz @abnikant
GIntrinsic &GMI = cast<GIntrinsic>(SrcMI); | ||
|
||
std::optional<const AIEBaseInstrInfo::VConcatOpInfo> ConcatOp = | ||
TII.getVConcatOpInfo(GMI.getIntrinsicID()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Curious: Why do you look at G_CONCAT_VECTOR
as well in the combiner above, but not here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question! I was looking to patterns in several benchmarks and probably I was not able to see this pattern happening in any case.
return false; | ||
} | ||
|
||
return true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it maybe be easier to have a combiner that first turns chains of upd into a CONCAT_VECTOR? And then we could use the combiners above to simplify that CONCAT_VECTOR? I guess most of the logic you have above to match all the lanes can be re-used.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sounds like a nice simplification! I will implement it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @gbossu, this approach gave me some improvements, but also regressions (I also added more selection patterns because of concatenation of acc vectors.) Now I have:
|--------------------------|-------------------------------|---------------|--------------|--------------|---------------|--------------|--------------------|--------------|----------------------------|----------------------------|----------------------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|----------------------------|----------------------------|-------------------|----------------|--------------|--------------|----------------------|----------------------------|----------------------------|-------------------------------|----------------------------|---------------------------|---------------|---------------|-----------------------------|-------------------------|------------------|------------------|------------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|----------------|----------------------------|--------------|-----------------|-----------------------|---------------|--------------------|-------------------|------------------|----------------|------------------|----------------|-----------------------------|-----------------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------------------------------|------------------------|----------------------|----------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|--------------|-------------------------|-------------------------|-----------------------------|-----------------------------|-------------------------------|-------------------------------|------------------|------------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|----------------------------|-----------------------|---------------------|--------------|-------------------|--------------|--------------|------------------|----------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|-----------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|---------------|------------------|----------------|------------------|----------------------------|----------------------------|------------------|-------------------|------------------|-----------------------|-------------------------|-----------------------------------|------------------|------------------|-----------------------|--------------|-------------------------|-------------------------|------------------|-------------------------|--------------|-----------------------------|--------------------|--------------|----------------|--------------|--------------|--------------------|---------------|------------------|------------------|------------------|-------------------------|---------------|---------------|--------------|-------------------|------------------|-------------------------------|----------------------------------------------|----------------------------------------------------------|----------------------------------------------|------------------------------------------------------------|------------------|------------------|--------------------|---------------|-------------------------------|--------------------|---------------|------------------------|-----------------|------------------|-------------------|-----------------|----------------|------------------------|---------------------|--------------|------------------|--------------|--------------------------|--------------|------------------|---------------------|------------------------------------|--------------------------------------|---------------|------------------------|------------------|-----------------------------|-------------------------------------------|---------------|-----------------------|--------------|-----------------------|---------------------------|---------------------|---------------------------|--------------|----------------------|--------------|---------------------------|---------------------------|--------------------|------------------|----------------------------|---------------------|--------------|------------------|------------------|---------------------------|---------------------|--------------|--------------|-----------------------|-------------------------|-----------------------|----------------------------|---------------|-----------------|---------------------------|------------------|---------------------------|-----------------------|-------------------------|----------------|--------------|-------------------------|---------------------------|---------------------------|---------------------------|---------------------|---------------------------|-----------------------|---------------------------|---------------------------|------------------------------|--------------------------|---------------|---------------------|-------------------------------|---------------------------|----------------------|---------------------------|--------------|---------------------------|------------------------------|---------------|--------------|-----------------------|---------------------|--------------|-------------------------|----------------------|--------------------|--------------|--------------------|---------------|---------------|--------------------------|--------------|--------------|--------------|--------------|----------------|------------------|----------------|--------------|-----------------|--------------|------------------|------------------|------------------------------|-----------------|------------------------------|-----------------|----------------|-------------------|-------------------|--------------|--------------|---------------|---------------|----------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|--------------------|----------------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Core_Compute_Cycle_Count | InstanceNormPart2_aie2_bf16_0 | bfloat16 | Neg_aie2_0 | Mul2d_bf16_0 | Shrink_aie2_1 | Sign_bf16_0 | Ceil_AIE2_bfloat16 | Mul2d_bf16_1 | ReduceMeanAxis_2_aie2_bf16 | ReduceMeanAxis_1_aie2_bf16 | ReduceMeanAxis_4_aie2_bf16 | PowAttributeBroadcasting_aie2_bf16_0 | DivAttributeBroadcasting_aie2_int8_0 | ElemDiv_aie2_0 | ReduceMeanAxis_2_aie2_int8 | DivBroadcasting_aie2_0 | ReduceMeanAxis_4_aie2_int8 | ReduceMeanAxis_1_aie2_int8 | Reciprocal_aie2_0 | Clip_aie2_int8 | Sign_bf16_1 | Add2D_bf16_0 | BitwiseXor_aie2_int8 | ReduceMeanAxis_6_aie2_bf16 | ReduceMeanAxis_3_aie2_bf16 | InterpolateLinear1D_AIE2_int8 | ReduceMeanAxis_5_aie2_bf16 | BatchNorm1d_aie2_bfloat16 | BatchNorm2D_1 | Sin_aie2_int8 | Transpose_aie2_bf16_102_pad | Transpose_aie2_bf16_102 | ReduceMax_bf16_0 | ReduceMin_bf16_0 | ReduceMeanNoc8_AIE2_bfloat16 | Softmax_bf16_0 | Abs_bf16_0 | Abs_int8_0 | Add2D_0 | Add2D_1 | Add2D_Standalone_0 | Add2D_Standalone_1 | AddAttributeBroadcasting_aie2_bf16 | AddBf16_aie2_0 | AddBroadcastingBf16_aie2_0 | Add_aie2_0 | ArgMin1d_int8_0 | BatchNorm1d_aie2_int8 | BatchNorm2D_0 | BitShift_AIE2_int8 | BitwiseAnd_int8_0 | BitwiseOr_int8_0 | Cast_aie2_int8 | Cast_aie2_int8_1 | Ceil_AIE2_int8 | ChannelsFirstFlatten_bf16_0 | ChannelsFirstFlatten_int8_0 | DegroupG4_aie2_bf16_0 | DegroupG4_aie2_bf16_1 | DegroupG4_aie2_int8_0 | DegroupG4_aie2_int8_1 | DegroupG8_aie2_bf16_0 | DegroupG8_aie2_bf16_1 | DegroupG8_aie2_int8_0 | DegroupG8_aie2_int8_1 | DivAttributeBroadcasting_aie2_bf16_0 | DivBroadcasting_aie2_1 | EleMax_aie2_bfloat16 | EleMin_aie2_bfloat16 | ElemDiv_aie2_1 | Erf_aie2_bf16_0 | Erf_aie2_int8_0 | Erf_aie2_int8_0_ptr_interface | Exp_bf16_0 | Exp_bf16_1 | Floor_aie2_0 | GeluTemplated_aie2_bf16 | GeluTemplated_aie2_int8 | HardSigmoidTemplated_bf16_0 | HardSigmoidTemplated_int8_0 | HardswishAsHardsigmoid_aie2_0 | HardswishAsHardsigmoid_aie2_1 | Hardswish_aie2_0 | Hardswish_aie2_1 | Log_bf16_0 | Log_int8_0 | LogicalNot_aie2_0 | LogicalXor_aie2_int8 | Mul2D_0 | Mul2D_1 | MulAttributeBroadcasting_aie2_bf16_0 | MulAttributeBroadcasting_aie2_int8_0 | MulBf16_aie2_0 | MulBroadcastingBf16_aie2_0 | MulBroadcasting_aie2_0 | Mul_aie2_0 | Neg_aie2_1 | Pad2D_0 | Pad2D_1 | Pad3D_AIE2_bfloat16 | Pad3D_AIE2_int8 | PixelShuffle_aie2_bf16 | PixelShuffle_aie2_int8 | PixelUnshuffle_bf16_0 | PixelUnshuffle_int8_0 | PowAttributeBroadcasting_aie2_int8_0 | Pow_int8_0 | Range_bfloat16_aie2_0 | Range_bfloat16_aie2_1 | ReduceMeanAxis_5_aie2_int8 | ReduceMin1D_aie2_int8 | Rescale_aie2_int8_0 | Round_aie2_0 | Rsqrt_aie2_bf16_0 | Scale_Add_0 | Scale_Add_1 | Select_aie2_int8 | SiLU_aie2_bf16 | SigmoidTemplated_bf16_0 | Sigmoid_bf16_0 | Sigmoid_bf16_1 | Sigmoid_int8_0 | Sigmoid_int8_1 | Sign_int8_0 | Sign_int8_1 | Sin_aie2_bf16 | Softmax_1 | Sqrt_bf16_0 | Sqrt_bf16_1 | Squeeze_bfloat16_0 | Squeeze_int8_0 | SubAttributeBroadcasting_aie2_bf16_0 | SubBroadcasting_aie2_bf16_0 | Sub_aie2_bf16_0 | Sub_aie2_int8_0 | Sub_aie2_int8_0_ptr_interface | TanhTemplated_aie2_bfloat16 | TanhTemplated_aie2_int8 | Transpose_aie2_bf16_021 | Transpose_aie2_bf16_021_pad | Transpose_aie2_bf16_120 | Transpose_aie2_bf16_120_pad | Transpose_aie2_bf16_201 | Transpose_aie2_bf16_201_pad | Transpose_aie2_bf16_210 | Transpose_aie2_bf16_210_pad | Transpose_aie2_int8_021 | Transpose_aie2_int8_021_pad | Transpose_aie2_int8_120 | Transpose_aie2_int8_120_pad | Transpose_aie2_int8_201 | Transpose_aie2_int8_201_pad | Transpose_aie2_int8_210 | Transpose_aie2_int8_210_pad | int8 | Topk2D_bf16_0 | ReduceSum_bf16_0 | SiLU_aie2_int8 | SiLU_aie2_int8_1 | ReduceMeanAxis_3_aie2_int8 | ReduceMeanAxis_6_aie2_int8 | ReduceSum_int8_0 | Reciprocal_aie2_1 | ReduceSum_bf16_1 | Conv1D_DW_AIE2_bf16_1 | Conv2D_Transpose_AIE2_0 | InterpolateLinear1D_AIE2_bfloat16 | Scale_Add_bf16_0 | Scale_Add_bf16_1 | Conv1D_DW_AIE2_bf16_0 | Requantize_0 | SigmoidTemplated_int8_0 | SigmoidTemplated_int8_1 | Conv2D_DW_bf16_1 | Transpose_aie2_int8_102 | LayerNorm_1 | Transpose_aie2_int8_102_pad | HardSigmoid_bf16_0 | Requantize_1 | Softmax_bf16_1 | Slice_int8_0 | Conv2D_DW_0 | HardSigmoid_bf16_1 | Shrink_aie2_0 | ReduceMax_int8_1 | ReduceMin_int8_1 | ReduceMin_bf16_1 | Conv2D_Transpose_AIE2_1 | Topk1D_bf16_0 | Conv2D_bf16_0 | GEMM_bf16_0 | Range_int8_aie2_1 | ReduceMax_bf16_1 | InstanceNormPart2_aie2_int8_0 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_EQ_int8_aie2 | CompareOpsBroadcasting_K_EQ_GE_GT_LE_LT_CMP_GE_int8_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_GE_int8_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_GE_int8_aie2_ptr_interface | ReduceMax_int8_0 | Slice_bfloat16_0 | HardSigmoid_int8_1 | Topk2D_int8_0 | InstanceNormPart1_aie2_int8_0 | HardSigmoid_int8_0 | Topk1D_int8_0 | FullyConnect_aie2_int8 | ArgMax1d_int8_0 | Conv2D_DW_bf16_0 | Range_int8_aie2_0 | ArgMin1d_bf16_0 | Conv2D_LReLU_1 | FullyConnect_aie2_bf16 | GroupG8_aie2_bf16_1 | LayerNorm_0 | Tile_aie2_int8_1 | GEMM_int8_1 | ReduceMeanNoc8_AIE2_int8 | GEMM_bf16_1 | ReduceSum_int8_1 | GroupG4_aie2_bf16_1 | AddAttributeBroadcasting_aie2_int8 | SubAttributeBroadcasting_aie2_int8_0 | Topk2D_bf16_1 | AddBroadcasting_aie2_0 | ReduceMin_int8_0 | SubBroadcasting_aie2_int8_0 | SubBroadcasting_aie2_int8_0_ptr_interface | Conv2D_bf16_1 | Conv2D_7x7s2_Layer1_0 | AvgPool2D_0 | AvgPool2D_aie2_int8_0 | ReduceSumAxis_7_aie2_int8 | GroupG8_aie2_bf16_0 | ReduceSumAxis_5_aie2_bf16 | GEMM_int8_0 | Conv2D_mixed_batch_0 | Conv2D_1 | ReduceSumAxis_3_aie2_bf16 | ReduceSumAxis_6_aie2_bf16 | Mish_aie2_bfloat16 | Expand_aie2_int8 | ReduceMeanAxis_7_aie2_bf16 | GroupG8_aie2_int8_1 | Conv2D_DW_1 | Tile_aie2_bf16_0 | Conv2D_11x11s4_0 | ReduceSumAxis_7_aie2_bf16 | GroupG4_aie2_int8_1 | MaxPool2D_0 | AvgPool2D_1 | AvgPool2D_aie2_int8_1 | Conv2D_11x11s4_Layer1_0 | ReduceMin1D_aie2_bf16 | ReduceMeanAxis_7_aie2_int8 | Conv2D_ReLU_1 | ArgMax1d_bf16_0 | ReduceSumAxis_5_aie2_int8 | Conv2D_11x11s4_1 | ReduceSumAxis_3_aie2_int8 | Conv1D_DW_AIE2_int8_0 | Conv2D_11x11s4_Layer1_1 | Conv2D_LReLU_0 | MaxPool2D_1 | BilinearInterpolation_0 | ReduceSumAxis_4_aie2_bf16 | ReduceSumAxis_6_aie2_int8 | ReduceSumAxis_1_aie2_bf16 | GroupG8_aie2_int8_0 | ReduceSumAxis_2_aie2_bf16 | Conv1D_DW_AIE2_int8_1 | AvgPool2D_aie2_bfloat16_1 | AvgPool2D_aie2_bfloat16_0 | LayerNormC8Part1_aie2_int8_0 | Conv2D_ReLU_Standalone_1 | Topk2D_int8_1 | GroupG4_aie2_bf16_0 | InstanceNormPart1_aie2_bf16_0 | ReduceSumAxis_2_aie2_int8 | Expand_aie2_bfloat16 | ReduceSumAxis_1_aie2_int8 | GEMV_0 | ReduceSumAxis_4_aie2_int8 | LayerNormC8Part1_aie2_bf16_0 | Topk1D_bf16_1 | Tanh_int8_1 | Conv2D_7x7s2_Layer1_1 | GroupG4_aie2_int8_0 | GEMV_1 | BilinearInterpolation_1 | Conv2D_mixed_batch_1 | Conv2D_ReLU_int8_0 | Tanh_int8_0 | Conv2D_ReLU_int8_1 | Topk1D_int8_1 | Conv2D_ReLU_0 | Conv2D_ReLU_Standalone_0 | Floor_aie2_1 | Pow_bf16_0 | Conv2D_FC_1 | Conv2D_0 | Group_Conv2D_1 | Select_aie2_bf16 | Group_Conv2D_0 | Conv2D_FC_0 | Elu_aie2_int8_0 | Conv2D_SV60 | EleMax_aie2_int8 | EleMin_aie2_int8 | LayerNormC8Part2_aie2_int8_0 | DilatedConv2D_1 | LayerNormC8Part2_aie2_bf16_0 | Elu_aie2_bf16_0 | Mish_aie2_int8 | BitwiseNot_aie2_0 | Rsqrt_aie2_int8_0 | Tanh_0 | Tanh_1 | Sqrt_int8_0 | Sqrt_int8_1 | Clip_aie2_bf16 | GELU_0 | GELU_1 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_EQ_bfloat16_aie2 | CompareOpsBroadcasting_K_EQ_GE_GT_LE_LT_CMP_GE_bfloat16_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_GE_bfloat16_aie2 | Round_aie2_1 | Cast_aie2_bfloat16 | Cast_aie2_bfloat16_1 | Averege diff | Diff stdev | Quantile #1 | Quantile #2 | Quantile #3 | Quantile #4 | Quantile #5 | Quantile #6 | Quantile #7 | Quantile #8 | Quantile #9 |
|--------------------------|-------------------------------|---------------|--------------|--------------|---------------|--------------|--------------------|--------------|----------------------------|----------------------------|----------------------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|----------------------------|----------------------------|-------------------|----------------|--------------|--------------|----------------------|----------------------------|----------------------------|-------------------------------|----------------------------|---------------------------|---------------|---------------|-----------------------------|-------------------------|------------------|------------------|------------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|----------------|----------------------------|--------------|-----------------|-----------------------|---------------|--------------------|-------------------|------------------|----------------|------------------|----------------|-----------------------------|-----------------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------------------------------|------------------------|----------------------|----------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|--------------|-------------------------|-------------------------|-----------------------------|-----------------------------|-------------------------------|-------------------------------|------------------|------------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|----------------------------|-----------------------|---------------------|--------------|-------------------|--------------|--------------|------------------|----------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|-----------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|---------------|------------------|----------------|------------------|----------------------------|----------------------------|------------------|-------------------|------------------|-----------------------|-------------------------|-----------------------------------|------------------|------------------|-----------------------|--------------|-------------------------|-------------------------|------------------|-------------------------|--------------|-----------------------------|--------------------|--------------|----------------|--------------|--------------|--------------------|---------------|------------------|------------------|------------------|-------------------------|---------------|---------------|--------------|-------------------|------------------|-------------------------------|----------------------------------------------|----------------------------------------------------------|----------------------------------------------|------------------------------------------------------------|------------------|------------------|--------------------|---------------|-------------------------------|--------------------|---------------|------------------------|-----------------|------------------|-------------------|-----------------|----------------|------------------------|---------------------|--------------|------------------|--------------|--------------------------|--------------|------------------|---------------------|------------------------------------|--------------------------------------|---------------|------------------------|------------------|-----------------------------|-------------------------------------------|---------------|-----------------------|--------------|-----------------------|---------------------------|---------------------|---------------------------|--------------|----------------------|--------------|---------------------------|---------------------------|--------------------|------------------|----------------------------|---------------------|--------------|------------------|------------------|---------------------------|---------------------|--------------|--------------|-----------------------|-------------------------|-----------------------|----------------------------|---------------|-----------------|---------------------------|------------------|---------------------------|-----------------------|-------------------------|----------------|--------------|-------------------------|---------------------------|---------------------------|---------------------------|---------------------|---------------------------|-----------------------|---------------------------|---------------------------|------------------------------|--------------------------|---------------|---------------------|-------------------------------|---------------------------|----------------------|---------------------------|--------------|---------------------------|------------------------------|---------------|--------------|-----------------------|---------------------|--------------|-------------------------|----------------------|--------------------|--------------|--------------------|---------------|---------------|--------------------------|--------------|--------------|--------------|--------------|----------------|------------------|----------------|--------------|-----------------|--------------|------------------|------------------|------------------------------|-----------------|------------------------------|-----------------|----------------|-------------------|-------------------|--------------|--------------|---------------|---------------|----------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|--------------------|----------------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Before | 10868 | 1055 | 435 | 455 | 735 | 1048 | 1381 | 303 | 13325 | 13291 | 13297 | 40463 | 8506 | 2176 | 7390 | 2234 | 7357 | 7335 | 1348 | 276 | 208 | 256 | 715 | 7754 | 7768 | 11972 | 7748 | 719 | 738 | 841 | 1142 | 1157 | 7296 | 7296 | 22344 | 7631 | 407 | 510 | 215 | 466 | 320 | 480 | 760 | 673 | 727 | 832 | 303 | 520 | 398 | 2008 | 482 | 482 | 794 | 794 | 447 | 13603 | 13995 | 606 | 1025 | 367 | 577 | 750 | 1152 | 439 | 640 | 5820 | 1563 | 333 | 333 | 1502 | 2896 | 2554 | 2533 | 7333 | 1472 | 301 | 1389 | 1214 | 647 | 257 | 1368 | 1915 | 1368 | 1910 | 4976 | 1617 | 225 | 528 | 459 | 459 | 1416 | 612 | 1077 | 1132 | 475 | 420 | 343 | 676 | 1732 | 9304 | 9723 | 8574 | 8574 | 17152 | 17152 | 4312 | 4312 | 3963 | 2659 | 2949 | 169 | 326 | 367 | 3603 | 434 | 434 | 213 | 3546 | 2136 | 2011 | 1327 | 91 | 110 | 416 | 122 | 3041 | 502 | 29776 | 3792 | 207 | 207 | 760 | 705 | 651 | 810 | 810 | 2524 | 310 | 1856 | 2340 | 1856 | 1752 | 1871 | 1767 | 1868 | 1868 | 2685 | 3614 | 2686 | 2686 | 2700 | 2544 | 2694 | 2538 | 862 | 34471 | 19807 | 2969 | 2967 | 2933 | 2929 | 20171 | 2529 | 12335 | 4036 | 39085 | 15243 | 1745 | 1745 | 3477 | 1538 | 1468 | 1468 | 3934 | 1153 | 16577 | 1093 | 1031 | 834 | 1645 | 1547 | 2962 | 707 | 672 | 19513 | 19267 | 18739 | 10470 | 1219 | 25551 | 3626 | 1794 | 9571 | 12336 | 994 | 989 | 989 | 989 | 14708 | 947 | 471 | 30790 | 11178 | 459 | 838 | 836 | 410 | 1217 | 1206 | 383 | 5301 | 1047 | 1667 | 19682 | 2619 | 36335 | 62115 | 7669 | 11603 | 1540 | 922 | 922 | 305 | 890 | 8996 | 868 | 868 | 40034 | 5926 | 1073 | 1073 | 2079 | 1033 | 7680 | 3066 | 11176 | 2510 | 7678 | 7664 | 5684 | 1931 | 6937 | 898 | 874 | 4272 | 5462 | 6897 | 835 | 798 | 785 | 785 | 4315 | 194 | 2122 | 28202 | 354 | 2899 | 5468 | 2897 | 1543 | 3015 | 2213 | 590 | 731 | 12827 | 2875 | 12790 | 562 | 12817 | 1769 | 2281 | 3297 | 7896 | 2569 | 255 | 502 | 2931 | 7263 | 1968 | 7223 | 474 | 7288 | 9066 | 171 | 425 | 1649 | 319 | 392 | 385 | 22846 | 10445 | 353 | 970 | 120 | 1316 | 1316 | 896 | 36879 | 1220 | 8218 | 4521 | 337 | 3998 | 2803 | 622 | 898 | 236 | 236 | 11518 | 5797 | 12436 | 1463 | 10412 | 233 | 2649 | 2982 | 3942 | 21973 | 21973 | 228 | 2930 | 3874 | 1876 | 1874 | 1871 | 1670 | 1930 | 1930 | | | | | | | | | | | |
|--------------------------|-------------------------------|---------------|--------------|--------------|---------------|--------------|--------------------|--------------|----------------------------|----------------------------|----------------------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|----------------------------|----------------------------|-------------------|----------------|--------------|--------------|----------------------|----------------------------|----------------------------|-------------------------------|----------------------------|---------------------------|---------------|---------------|-----------------------------|-------------------------|------------------|------------------|------------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|----------------|----------------------------|--------------|-----------------|-----------------------|---------------|--------------------|-------------------|------------------|----------------|------------------|----------------|-----------------------------|-----------------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------------------------------|------------------------|----------------------|----------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|--------------|-------------------------|-------------------------|-----------------------------|-----------------------------|-------------------------------|-------------------------------|------------------|------------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|----------------------------|-----------------------|---------------------|--------------|-------------------|--------------|--------------|------------------|----------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|-----------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|---------------|------------------|----------------|------------------|----------------------------|----------------------------|------------------|-------------------|------------------|-----------------------|-------------------------|-----------------------------------|------------------|------------------|-----------------------|--------------|-------------------------|-------------------------|------------------|-------------------------|--------------|-----------------------------|--------------------|--------------|----------------|--------------|--------------|--------------------|---------------|------------------|------------------|------------------|-------------------------|---------------|---------------|--------------|-------------------|------------------|-------------------------------|----------------------------------------------|----------------------------------------------------------|----------------------------------------------|------------------------------------------------------------|------------------|------------------|--------------------|---------------|-------------------------------|--------------------|---------------|------------------------|-----------------|------------------|-------------------|-----------------|----------------|------------------------|---------------------|--------------|------------------|--------------|--------------------------|--------------|------------------|---------------------|------------------------------------|--------------------------------------|---------------|------------------------|------------------|-----------------------------|-------------------------------------------|---------------|-----------------------|--------------|-----------------------|---------------------------|---------------------|---------------------------|--------------|----------------------|--------------|---------------------------|---------------------------|--------------------|------------------|----------------------------|---------------------|--------------|------------------|------------------|---------------------------|---------------------|--------------|--------------|-----------------------|-------------------------|-----------------------|----------------------------|---------------|-----------------|---------------------------|------------------|---------------------------|-----------------------|-------------------------|----------------|--------------|-------------------------|---------------------------|---------------------------|---------------------------|---------------------|---------------------------|-----------------------|---------------------------|---------------------------|------------------------------|--------------------------|---------------|---------------------|-------------------------------|---------------------------|----------------------|---------------------------|--------------|---------------------------|------------------------------|---------------|--------------|-----------------------|---------------------|--------------|-------------------------|----------------------|--------------------|--------------|--------------------|---------------|---------------|--------------------------|--------------|--------------|--------------|--------------|----------------|------------------|----------------|--------------|-----------------|--------------|------------------|------------------|------------------------------|-----------------|------------------------------|-----------------|----------------|-------------------|-------------------|--------------|--------------|---------------|---------------|----------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|--------------------|----------------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| After | 13092 | 1204 | 467 | 470 | 759 | 1078 | 1413 | 310 | 13626 | 13590 | 13596 | 41358 | 8635 | 2209 | 7500 | 2267 | 7465 | 7438 | 1363 | 279 | 210 | 258 | 720 | 7772 | 7786 | 11999 | 7765 | 720 | 739 | 842 | 1143 | 1158 | 7301 | 7301 | 22356 | 7632 | 407 | 510 | 215 | 466 | 320 | 480 | 760 | 673 | 727 | 832 | 303 | 520 | 398 | 2008 | 482 | 482 | 794 | 794 | 447 | 13603 | 13995 | 606 | 1025 | 367 | 577 | 750 | 1152 | 439 | 640 | 5820 | 1563 | 333 | 333 | 1502 | 2896 | 2554 | 2533 | 7333 | 1472 | 301 | 1389 | 1214 | 647 | 257 | 1368 | 1915 | 1368 | 1910 | 4976 | 1617 | 225 | 528 | 459 | 459 | 1416 | 612 | 1077 | 1132 | 475 | 420 | 343 | 676 | 1732 | 9304 | 9723 | 8574 | 8574 | 17152 | 17152 | 4312 | 4312 | 3963 | 2659 | 2949 | 169 | 326 | 367 | 3603 | 434 | 434 | 213 | 3546 | 2136 | 2011 | 1327 | 91 | 110 | 416 | 122 | 3041 | 502 | 29776 | 3792 | 207 | 207 | 760 | 705 | 651 | 810 | 810 | 2524 | 310 | 1856 | 2340 | 1856 | 1752 | 1871 | 1767 | 1868 | 1868 | 2685 | 3614 | 2686 | 2686 | 2700 | 2544 | 2694 | 2538 | 862 | 34470 | 19804 | 2968 | 2966 | 2932 | 2928 | 20164 | 2528 | 12329 | 4034 | 39065 | 15235 | 1744 | 1744 | 3475 | 1537 | 1467 | 1467 | 3931 | 1152 | 16562 | 1092 | 1030 | 833 | 1643 | 1545 | 2958 | 706 | 671 | 19483 | 19237 | 18709 | 10453 | 1217 | 25509 | 3620 | 1791 | 9553 | 12312 | 992 | 987 | 987 | 987 | 14677 | 945 | 470 | 30724 | 11154 | 458 | 836 | 834 | 409 | 1214 | 1203 | 382 | 5286 | 1044 | 1662 | 19622 | 2611 | 36224 | 61921 | 7645 | 11566 | 1535 | 919 | 919 | 304 | 887 | 8965 | 865 | 865 | 39886 | 5904 | 1069 | 1069 | 2071 | 1029 | 7650 | 3054 | 11132 | 2500 | 7647 | 7633 | 5661 | 1923 | 6907 | 894 | 870 | 4252 | 5436 | 6864 | 831 | 794 | 781 | 781 | 4293 | 193 | 2111 | 28047 | 352 | 2882 | 5435 | 2879 | 1533 | 2995 | 2198 | 586 | 726 | 12738 | 2855 | 12700 | 558 | 12723 | 1756 | 2264 | 3272 | 7836 | 2549 | 253 | 498 | 2907 | 7190 | 1948 | 7149 | 469 | 7211 | 8968 | 169 | 420 | 1629 | 315 | 387 | 380 | 22536 | 10302 | 348 | 954 | 118 | 1294 | 1294 | 881 | 36237 | 1197 | 8063 | 4428 | 330 | 3910 | 2737 | 607 | 876 | 230 | 230 | 11222 | 5622 | 11884 | 1391 | 9626 | 215 | 2424 | 2694 | 3558 | 19669 | 19669 | 204 | 2594 | 3426 | 1636 | 1634 | 1631 | 1248 | 923 | 923 | -0.89% | 5.01 | -1.67% | -0.68% | -0.37% | -0.20% | -0.05% | +0.00% | +0.00% | +0.00% | +0.07% |
|--------------------------|-------------------------------|---------------|--------------|--------------|---------------|--------------|--------------------|--------------|----------------------------|----------------------------|----------------------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|----------------------------|----------------------------|-------------------|----------------|--------------|--------------|----------------------|----------------------------|----------------------------|-------------------------------|----------------------------|---------------------------|---------------|---------------|-----------------------------|-------------------------|------------------|------------------|------------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|----------------|----------------------------|--------------|-----------------|-----------------------|---------------|--------------------|-------------------|------------------|----------------|------------------|----------------|-----------------------------|-----------------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------------------------------|------------------------|----------------------|----------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|--------------|-------------------------|-------------------------|-----------------------------|-----------------------------|-------------------------------|-------------------------------|------------------|------------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|----------------------------|-----------------------|---------------------|--------------|-------------------|--------------|--------------|------------------|----------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|-----------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|---------------|------------------|----------------|------------------|----------------------------|----------------------------|------------------|-------------------|------------------|-----------------------|-------------------------|-----------------------------------|------------------|------------------|-----------------------|--------------|-------------------------|-------------------------|------------------|-------------------------|--------------|-----------------------------|--------------------|--------------|----------------|--------------|--------------|--------------------|---------------|------------------|------------------|------------------|-------------------------|---------------|---------------|--------------|-------------------|------------------|-------------------------------|----------------------------------------------|----------------------------------------------------------|----------------------------------------------|------------------------------------------------------------|------------------|------------------|--------------------|---------------|-------------------------------|--------------------|---------------|------------------------|-----------------|------------------|-------------------|-----------------|----------------|------------------------|---------------------|--------------|------------------|--------------|--------------------------|--------------|------------------|---------------------|------------------------------------|--------------------------------------|---------------|------------------------|------------------|-----------------------------|-------------------------------------------|---------------|-----------------------|--------------|-----------------------|---------------------------|---------------------|---------------------------|--------------|----------------------|--------------|---------------------------|---------------------------|--------------------|------------------|----------------------------|---------------------|--------------|------------------|------------------|---------------------------|---------------------|--------------|--------------|-----------------------|-------------------------|-----------------------|----------------------------|---------------|-----------------|---------------------------|------------------|---------------------------|-----------------------|-------------------------|----------------|--------------|-------------------------|---------------------------|---------------------------|---------------------------|---------------------|---------------------------|-----------------------|---------------------------|---------------------------|------------------------------|--------------------------|---------------|---------------------|-------------------------------|---------------------------|----------------------|---------------------------|--------------|---------------------------|------------------------------|---------------|--------------|-----------------------|---------------------|--------------|-------------------------|----------------------|--------------------|--------------|--------------------|---------------|---------------|--------------------------|--------------|--------------|--------------|--------------|----------------|------------------|----------------|--------------|-----------------|--------------|------------------|------------------|------------------------------|-----------------|------------------------------|-----------------|----------------|-------------------|-------------------|--------------|--------------|---------------|---------------|----------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|--------------------|----------------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Total diff | REGR(+20.46%) | REGR(+14.12%) | REGR(+7.36%) | REGR(+3.30%) | REGR(+3.27%) | REGR(+2.86%) | REGR(+2.32%) | REGR(+2.31%) | REGR(+2.26%) | REGR(+2.25%) | REGR(+2.25%) | REGR(+2.21%) | REGR(+1.52%) | REGR(+1.52%) | REGR(+1.49%) | REGR(+1.48%) | REGR(+1.47%) | REGR(+1.40%) | REGR(+1.11%) | REGR(+1.09%) | REGR(+0.96%) | REGR(+0.78%) | REGR(+0.70%) | REGR(+0.23%) | REGR(+0.23%) | REGR(+0.23%) | REGR(+0.22%) | REGR(+0.14%) | REGR(+0.14%) | REGR(+0.12%) | SAME(+0.09%) | SAME(+0.09%) | SAME(+0.07%) | SAME(+0.07%) | SAME(+0.05%) | SAME(+0.01%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(-0.00%) | SAME(-0.02%) | SAME(-0.03%) | SAME(-0.03%) | SAME(-0.03%) | SAME(-0.03%) | SAME(-0.03%) | SAME(-0.04%) | SAME(-0.05%) | SAME(-0.05%) | SAME(-0.05%) | SAME(-0.05%) | SAME(-0.06%) | SAME(-0.06%) | SAME(-0.06%) | SAME(-0.07%) | SAME(-0.07%) | SAME(-0.07%) | SAME(-0.08%) | SAME(-0.09%) | SAME(-0.09%) | SAME(-0.09%) | SAME(-0.10%) | IMPR(-0.12%) | IMPR(-0.12%) | IMPR(-0.13%) | IMPR(-0.14%) | IMPR(-0.14%) | IMPR(-0.15%) | IMPR(-0.15%) | IMPR(-0.16%) | IMPR(-0.16%) | IMPR(-0.16%) | IMPR(-0.16%) | IMPR(-0.16%) | IMPR(-0.17%) | IMPR(-0.17%) | IMPR(-0.19%) | IMPR(-0.19%) | IMPR(-0.20%) | IMPR(-0.20%) | IMPR(-0.20%) | IMPR(-0.20%) | IMPR(-0.21%) | IMPR(-0.21%) | IMPR(-0.21%) | IMPR(-0.21%) | IMPR(-0.21%) | IMPR(-0.22%) | IMPR(-0.24%) | IMPR(-0.24%) | IMPR(-0.24%) | IMPR(-0.25%) | IMPR(-0.25%) | IMPR(-0.26%) | IMPR(-0.28%) | IMPR(-0.29%) | IMPR(-0.30%) | IMPR(-0.30%) | IMPR(-0.31%) | IMPR(-0.31%) | IMPR(-0.31%) | IMPR(-0.31%) | IMPR(-0.32%) | IMPR(-0.32%) | IMPR(-0.33%) | IMPR(-0.33%) | IMPR(-0.33%) | IMPR(-0.34%) | IMPR(-0.34%) | IMPR(-0.35%) | IMPR(-0.35%) | IMPR(-0.37%) | IMPR(-0.37%) | IMPR(-0.37%) | IMPR(-0.37%) | IMPR(-0.38%) | IMPR(-0.39%) | IMPR(-0.39%) | IMPR(-0.39%) | IMPR(-0.39%) | IMPR(-0.40%) | IMPR(-0.40%) | IMPR(-0.40%) | IMPR(-0.40%) | IMPR(-0.41%) | IMPR(-0.43%) | IMPR(-0.45%) | IMPR(-0.46%) | IMPR(-0.47%) | IMPR(-0.48%) | IMPR(-0.48%) | IMPR(-0.48%) | IMPR(-0.50%) | IMPR(-0.51%) | IMPR(-0.51%) | IMPR(-0.51%) | IMPR(-0.52%) | IMPR(-0.52%) | IMPR(-0.55%) | IMPR(-0.56%) | IMPR(-0.59%) | IMPR(-0.60%) | IMPR(-0.62%) | IMPR(-0.65%) | IMPR(-0.66%) | IMPR(-0.68%) | IMPR(-0.68%) | IMPR(-0.68%) | IMPR(-0.69%) | IMPR(-0.70%) | IMPR(-0.70%) | IMPR(-0.71%) | IMPR(-0.73%) | IMPR(-0.73%) | IMPR(-0.75%) | IMPR(-0.76%) | IMPR(-0.76%) | IMPR(-0.78%) | IMPR(-0.78%) | IMPR(-0.80%) | IMPR(-0.82%) | IMPR(-1.01%) | IMPR(-1.02%) | IMPR(-1.02%) | IMPR(-1.05%) | IMPR(-1.06%) | IMPR(-1.08%) | IMPR(-1.17%) | IMPR(-1.18%) | IMPR(-1.21%) | IMPR(-1.25%) | IMPR(-1.28%) | IMPR(-1.30%) | IMPR(-1.36%) | IMPR(-1.37%) | IMPR(-1.42%) | IMPR(-1.65%) | IMPR(-1.67%) | IMPR(-1.67%) | IMPR(-1.67%) | IMPR(-1.67%) | IMPR(-1.74%) | IMPR(-1.89%) | IMPR(-1.89%) | IMPR(-2.06%) | IMPR(-2.08%) | IMPR(-2.20%) | IMPR(-2.35%) | IMPR(-2.41%) | IMPR(-2.45%) | IMPR(-2.54%) | IMPR(-2.54%) | IMPR(-2.57%) | IMPR(-3.02%) | IMPR(-4.44%) | IMPR(-4.92%) | IMPR(-7.55%) | IMPR(-7.73%) | IMPR(-8.49%) | IMPR(-9.66%) | IMPR(-9.74%) | IMPR(-10.49%) | IMPR(-10.49%) | IMPR(-10.53%) | IMPR(-11.47%) | IMPR(-11.56%) | IMPR(-12.79%) | IMPR(-12.81%) | IMPR(-12.83%) | IMPR(-25.27%) | IMPR(-52.18%) | IMPR(-52.18%) | -0.89% | 5.01 | -1.67% | -0.68% | -0.37% | -0.20% | -0.05% | +0.00% | +0.00% | +0.00% | +0.07% |
|--------------------------|-------------------------------|---------------|--------------|--------------|---------------|--------------|--------------------|--------------|----------------------------|----------------------------|----------------------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|----------------------------|----------------------------|-------------------|----------------|--------------|--------------|----------------------|----------------------------|----------------------------|-------------------------------|----------------------------|---------------------------|---------------|---------------|-----------------------------|-------------------------|------------------|------------------|------------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|----------------|----------------------------|--------------|-----------------|-----------------------|---------------|--------------------|-------------------|------------------|----------------|------------------|----------------|-----------------------------|-----------------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------------------------------|------------------------|----------------------|----------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|--------------|-------------------------|-------------------------|-----------------------------|-----------------------------|-------------------------------|-------------------------------|------------------|------------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|----------------------------|-----------------------|---------------------|--------------|-------------------|--------------|--------------|------------------|----------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|-----------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|---------------|------------------|----------------|------------------|----------------------------|----------------------------|------------------|-------------------|------------------|-----------------------|-------------------------|-----------------------------------|------------------|------------------|-----------------------|--------------|-------------------------|-------------------------|------------------|-------------------------|--------------|-----------------------------|--------------------|--------------|----------------|--------------|--------------|--------------------|---------------|------------------|------------------|------------------|-------------------------|---------------|---------------|--------------|-------------------|------------------|-------------------------------|----------------------------------------------|----------------------------------------------------------|----------------------------------------------|------------------------------------------------------------|------------------|------------------|--------------------|---------------|-------------------------------|--------------------|---------------|------------------------|-----------------|------------------|-------------------|-----------------|----------------|------------------------|---------------------|--------------|------------------|--------------|--------------------------|--------------|------------------|---------------------|------------------------------------|--------------------------------------|---------------|------------------------|------------------|-----------------------------|-------------------------------------------|---------------|-----------------------|--------------|-----------------------|---------------------------|---------------------|---------------------------|--------------|----------------------|--------------|---------------------------|---------------------------|--------------------|------------------|----------------------------|---------------------|--------------|------------------|------------------|---------------------------|---------------------|--------------|--------------|-----------------------|-------------------------|-----------------------|----------------------------|---------------|-----------------|---------------------------|------------------|---------------------------|-----------------------|-------------------------|----------------|--------------|-------------------------|---------------------------|---------------------------|---------------------------|---------------------|---------------------------|-----------------------|---------------------------|---------------------------|------------------------------|--------------------------|---------------|---------------------|-------------------------------|---------------------------|----------------------|---------------------------|--------------|---------------------------|------------------------------|---------------|--------------|-----------------------|---------------------|--------------|-------------------------|----------------------|--------------------|--------------|--------------------|---------------|---------------|--------------------------|--------------|--------------|--------------|--------------|----------------|------------------|----------------|--------------|-----------------|--------------|------------------|------------------|------------------------------|-----------------|------------------------------|-----------------|----------------|-------------------|-------------------|--------------|--------------|---------------|---------------|----------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|--------------------|----------------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's look at the outliers separately, overall this is a great change!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please go through the comments I left, but I LGTM! I don't think anything is really blocking, just some suggestions.
7470e63
to
9a788f6
Compare
/// This function tracks chain of vector updates using .upd vector intrinsic. | ||
static bool trackVectorUpdateChain(MachineInstr &MI, MachineRegisterInfo &MRI, | ||
const AIEBaseInstrInfo &TII, | ||
std::map<unsigned, Register> &IndexRegMap) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Super-nit: We could actually just return a std::map<unsigned, Register>
, the map would be empty if we do not manage to track any update.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! I guess we might be able to remove some of those combines once we define our "C intrinsics" using more generic builtins, but so far this is great change!
9a788f6
to
b041c2d
Compare
Optimize some vector operations (instrinsics) to COPYs
b041c2d
to
f909d39
Compare
Optimize some vector operations (instrinsics) to COPYs. With this PR, we carry less subregister dependencies to the the selector and future passes. Also, we start to expose more selection-combine opportunities.
Covered situations:
CONCAT- > UNMERGE
CONCAT -> EXTRACT
UPDATE -> UNMERGE
We have one case related to G_CONCAT_VECTORS that is a preparation for the next step: the splitting of memory operations.