Skip to content
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

Merged
merged 2 commits into from
Sep 30, 2024

Conversation

andcarminati
Copy link
Collaborator

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.

@andcarminati
Copy link
Collaborator Author

QoR results:

|--------------------------|---------------|-----------------|--------------|--------------------------------------|-----------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|----------------------------------------------------------|----------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|----------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|--------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|-----------------|------------------------|----------------|--------------------------------------|-------------------------------|------------------------------|----------------|-------------------|--------------|--------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Core_Compute_Cycle_Count | Shrink_aie2_1 | Elu_aie2_bf16_0 | Add2D_bf16_0 | PowAttributeBroadcasting_aie2_bf16_0 | ArgMin1d_bf16_0 | Softmax_bf16_0 | Abs_bf16_0   | Abs_int8_0   | Add2D_0      | Add2D_1      | Add2D_Standalone_0 | Add2D_Standalone_1 | AddAttributeBroadcasting_aie2_bf16 | AddAttributeBroadcasting_aie2_int8 | AddBf16_aie2_0 | AddBroadcastingBf16_aie2_0 | AddBroadcasting_aie2_0 | Add_aie2_0   | ArgMax1d_bf16_0 | ArgMax1d_int8_0 | ArgMin1d_int8_0 | AvgPool2D_0  | AvgPool2D_1  | AvgPool2D_aie2_bfloat16_0 | AvgPool2D_aie2_bfloat16_1 | AvgPool2D_aie2_int8_0 | AvgPool2D_aie2_int8_1 | BatchNorm1d_aie2_bfloat16 | BatchNorm1d_aie2_int8 | BatchNorm2D_0 | BatchNorm2D_1 | BilinearInterpolation_0 | BilinearInterpolation_1 | BitShift_AIE2_int8 | BitwiseNot_aie2_0 | BitwiseOr_int8_0 | BitwiseXor_aie2_int8 | Cast_aie2_bfloat16 | Cast_aie2_bfloat16_1 | Cast_aie2_int8 | Cast_aie2_int8_1 | Ceil_AIE2_bfloat16 | Ceil_AIE2_int8 | ChannelsFirstFlatten_bf16_0 | ChannelsFirstFlatten_int8_0 | Clip_aie2_bf16 | Clip_aie2_int8 | CompareOpsBroadcasting_K_EQ_GE_GT_LE_LT_CMP_GE_int8_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_EQ_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 | Conv1D_DW_AIE2_bf16_0 | Conv1D_DW_AIE2_bf16_1 | Conv1D_DW_AIE2_int8_0 | Conv1D_DW_AIE2_int8_1 | Conv2D_0     | Conv2D_1     | Conv2D_7x7s2_Layer1_0 | Conv2D_7x7s2_Layer1_1 | Conv2D_11x11s4_0 | Conv2D_11x11s4_1 | Conv2D_11x11s4_Layer1_0 | Conv2D_11x11s4_Layer1_1 | Conv2D_DW_0  | Conv2D_DW_1  | Conv2D_DW_bf16_0 | Conv2D_DW_bf16_1 | Conv2D_FC_0  | Conv2D_FC_1  | Conv2D_LReLU_0 | Conv2D_LReLU_1 | Conv2D_ReLU_0 | Conv2D_ReLU_1 | Conv2D_ReLU_Standalone_0 | Conv2D_ReLU_Standalone_1 | Conv2D_ReLU_int8_0 | Conv2D_ReLU_int8_1 | Conv2D_SV60  | Conv2D_Transpose_AIE2_0 | Conv2D_Transpose_AIE2_1 | Conv2D_bf16_0 | Conv2D_bf16_1 | Conv2D_mixed_batch_0 | Conv2D_mixed_batch_1 | 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 | DilatedConv2D_1 | DivAttributeBroadcasting_aie2_bf16_0 | DivBroadcasting_aie2_1 | EleMax_aie2_bfloat16 | EleMax_aie2_int8 | EleMin_aie2_bfloat16 | EleMin_aie2_int8 | ElemDiv_aie2_1 | Erf_aie2_bf16_0 | Erf_aie2_int8_0 | Erf_aie2_int8_0_ptr_interface | Exp_bf16_0   | Exp_bf16_1   | Expand_aie2_bfloat16 | Expand_aie2_int8 | Floor_aie2_0 | Floor_aie2_1 | FullyConnect_aie2_bf16 | FullyConnect_aie2_int8 | GEMM_bf16_0  | GEMM_bf16_1  | GEMM_int8_0  | GEMM_int8_1  | GEMV_0       | GEMV_1       | GeluTemplated_aie2_bf16 | GeluTemplated_aie2_int8 | GroupG4_aie2_bf16_0 | GroupG4_aie2_bf16_1 | GroupG4_aie2_int8_0 | GroupG4_aie2_int8_1 | GroupG8_aie2_bf16_0 | GroupG8_aie2_bf16_1 | GroupG8_aie2_int8_0 | GroupG8_aie2_int8_1 | Group_Conv2D_0 | Group_Conv2D_1 | HardSigmoidTemplated_bf16_0 | HardSigmoidTemplated_int8_0 | HardSigmoid_bf16_0 | HardSigmoid_bf16_1 | HardSigmoid_int8_0 | HardSigmoid_int8_1 | HardswishAsHardsigmoid_aie2_0 | HardswishAsHardsigmoid_aie2_1 | Hardswish_aie2_0 | Hardswish_aie2_1 | InstanceNormPart1_aie2_bf16_0 | InstanceNormPart1_aie2_int8_0 | InstanceNormPart2_aie2_int8_0 | InterpolateLinear1D_AIE2_bfloat16 | InterpolateLinear1D_AIE2_int8 | LayerNormC8Part1_aie2_bf16_0 | LayerNormC8Part1_aie2_int8_0 | LayerNormC8Part2_aie2_int8_0 | LayerNorm_0  | LayerNorm_1  | Log_bf16_0   | Log_int8_0   | LogicalNot_aie2_0 | LogicalXor_aie2_int8 | MaxPool2D_0  | MaxPool2D_1  | Mish_aie2_bfloat16 | Mul2D_0      | Mul2D_1      | Mul2d_bf16_0 | Mul2d_bf16_1 | MulAttributeBroadcasting_aie2_bf16_0 | MulAttributeBroadcasting_aie2_int8_0 | MulBf16_aie2_0 | MulBroadcastingBf16_aie2_0 | MulBroadcasting_aie2_0 | Mul_aie2_0   | Neg_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 | Range_int8_aie2_0 | Range_int8_aie2_1 | Reciprocal_aie2_0 | Reciprocal_aie2_1 | ReduceMax_bf16_0 | ReduceMax_bf16_1 | ReduceMax_int8_0 | ReduceMax_int8_1 | ReduceMeanAxis_1_aie2_int8 | ReduceMeanAxis_2_aie2_int8 | ReduceMeanAxis_3_aie2_int8 | ReduceMeanAxis_4_aie2_int8 | ReduceMeanAxis_5_aie2_int8 | ReduceMeanAxis_6_aie2_int8 | ReduceMeanAxis_7_aie2_bf16 | ReduceMeanAxis_7_aie2_int8 | ReduceMeanNoc8_AIE2_bfloat16 | ReduceMeanNoc8_AIE2_int8 | ReduceMin1D_aie2_bf16 | ReduceMin1D_aie2_int8 | ReduceMin_bf16_0 | ReduceMin_bf16_1 | ReduceMin_int8_0 | ReduceMin_int8_1 | ReduceSumAxis_1_aie2_int8 | ReduceSumAxis_2_aie2_int8 | ReduceSumAxis_3_aie2_int8 | ReduceSumAxis_4_aie2_int8 | ReduceSumAxis_5_aie2_int8 | ReduceSumAxis_6_aie2_int8 | ReduceSumAxis_7_aie2_bf16 | ReduceSumAxis_7_aie2_int8 | ReduceSum_bf16_0 | ReduceSum_bf16_1 | ReduceSum_int8_0 | ReduceSum_int8_1 | Requantize_0 | Requantize_1 | Rescale_aie2_int8_0 | Round_aie2_0 | Round_aie2_1 | Rsqrt_aie2_bf16_0 | Scale_Add_0  | Scale_Add_1  | Scale_Add_bf16_0 | Scale_Add_bf16_1 | Select_aie2_bf16 | Select_aie2_int8 | Shrink_aie2_0 | SiLU_aie2_bf16 | SiLU_aie2_int8 | SiLU_aie2_int8_1 | SigmoidTemplated_bf16_0 | SigmoidTemplated_int8_0 | SigmoidTemplated_int8_1 | Sigmoid_bf16_0 | Sigmoid_bf16_1 | Sigmoid_int8_0 | Sigmoid_int8_1 | Sign_int8_0  | Sign_int8_1  | Sin_aie2_bf16 | Sin_aie2_int8 | Slice_bfloat16_0 | Slice_int8_0 | Softmax_1    | Softmax_bf16_1 | Sqrt_bf16_0  | Sqrt_bf16_1  | Squeeze_bfloat16_0 | Squeeze_int8_0 | SubAttributeBroadcasting_aie2_bf16_0 | SubAttributeBroadcasting_aie2_int8_0 | SubBroadcasting_aie2_bf16_0 | SubBroadcasting_aie2_int8_0 | SubBroadcasting_aie2_int8_0_ptr_interface | Sub_aie2_bf16_0 | Sub_aie2_int8_0 | Sub_aie2_int8_0_ptr_interface | TanhTemplated_aie2_bfloat16 | TanhTemplated_aie2_int8 | Tanh_int8_0  | Tanh_int8_1  | Tile_aie2_bf16_0 | Tile_aie2_int8_1 | Topk1D_bf16_0 | Topk1D_bf16_1 | Topk1D_int8_0 | Topk1D_int8_1 | Topk2D_bf16_0 | Topk2D_bf16_1 | Topk2D_int8_0 | Topk2D_int8_1 | Transpose_aie2_bf16_021 | Transpose_aie2_bf16_021_pad | Transpose_aie2_bf16_102 | Transpose_aie2_bf16_102_pad | Transpose_aie2_bf16_120 | 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_102 | Transpose_aie2_int8_102_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 | bfloat16     | int8         | Pow_bf16_0   | Sign_bf16_0  | ReduceSumAxis_5_aie2_bf16 | ReduceSumAxis_3_aie2_bf16 | ReduceSumAxis_6_aie2_bf16 | ReduceMeanAxis_3_aie2_bf16 | ReduceMeanAxis_6_aie2_bf16 | ReduceMeanAxis_5_aie2_bf16 | Sign_bf16_1  | ReduceSumAxis_4_aie2_bf16 | ReduceSumAxis_2_aie2_bf16 | ReduceSumAxis_1_aie2_bf16 | ReduceMeanAxis_2_aie2_bf16 | ReduceMeanAxis_4_aie2_bf16 | ReduceMeanAxis_1_aie2_bf16 | Elu_aie2_int8_0 | DivBroadcasting_aie2_0 | ElemDiv_aie2_0 | DivAttributeBroadcasting_aie2_int8_0 | InstanceNormPart2_aie2_bf16_0 | LayerNormC8Part2_aie2_bf16_0 | Mish_aie2_int8 | Rsqrt_aie2_int8_0 | Tanh_0       | Tanh_1       | Sqrt_int8_0   | Sqrt_int8_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 | GELU_0        | GELU_1        | Averege diff | Diff stdev | Quantile #1 | Quantile #2 | Quantile #3 | Quantile #4 | Quantile #5 | Quantile #6 | Quantile #7 | Quantile #8 | Quantile #9 |
|--------------------------|---------------|-----------------|--------------|--------------------------------------|-----------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|----------------------------------------------------------|----------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|----------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|--------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|-----------------|------------------------|----------------|--------------------------------------|-------------------------------|------------------------------|----------------|-------------------|--------------|--------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Before                   |           735 |            1463 |          256 |                                40463 |             383 |           7631 |          407 |          510 |          215 |          466 |                320 |                480 |                                760 |                                922 |            673 |                        727 |                    890 |          832 |             354 |             410 |             303 |         1073 |          785 |                      3297 |                      2281 |                  1073 |                   785 |                       719 |                   520 |           398 |           738 |                     731 |                     385 |               2008 |               233 |              482 |                  715 |               1930 |                 1930 |            794 |              794 |               1381 |            447 |                       13603 |                       13995 |            228 |            276 |                                                      989 |                                          994 |                                          989 |                                                        989 |                  3477 |                  4036 |                  1543 |                  1769 |         8218 |         2510 |                  5926 |                  1649 |             5462 |             5468 |                    4315 |                    3015 |         2962 |          874 |             1217 |             3934 |         2803 |         1220 |           2213 |           5301 |          1316 |         28202 |                     1316 |                     2569 |              10445 |                970 |          898 |                   39085 |                   10470 |         25551 |         40034 |                11176 |                22846 |                   606 |                  1025 |                   367 |                   577 |                   750 |                  1152 |                   439 |                   640 |            5797 |                                 5820 |                   1563 |                  333 |              236 |                  333 |              236 |           1502 |            2896 |            2554 |                          2533 |         7333 |         1472 |                 1968 |             1931 |          301 |          896 |                   1047 |                    836 |         3626 |         7669 |         3066 |        36335 |          474 |          392 |                    1389 |                    1214 |                 502 |                1540 |                 319 |                 835 |                1033 |                1667 |                 562 |                 898 |           3998 |           4521 |                         647 |                         257 |               1031 |                707 |                459 |                471 |                          1368 |                          1915 |             1368 |             1910 |                          2931 |                         11178 |                         12336 |                             15243 |                         11972 |                         9066 |                         7896 |                        11518 |        19682 |        16577 |         4976 |         1617 |               225 |                  528 |          798 |          590 |               5684 |          459 |          459 |          455 |          303 |                                 1416 |                                  612 |           1077 |                       1132 |                    475 |          420 |          435 |          343 |          676 |         1732 |                9304 |            9723 |                   8574 |                   8574 |                 17152 |                 17152 |                                 4312 |         4312 |                  3963 |                  2659 |              1206 |              1794 |              1348 |              2529 |             7296 |             9571 |            14708 |            19513 |                       7335 |                       7390 |                       2933 |                       7357 |                       2949 |                       2929 |                       6937 |                       2122 |                        22344 |                    62115 |                   194 |                   169 |             7296 |            18739 |             8996 |            19267 |                      7223 |                      7263 |                      2897 |                      7288 |                      2899 |                      2875 |                      6897 |                      2079 |            19807 |            12335 |            20171 |            11603 |         1538 |          834 |                 326 |          367 |         1670 |              3603 |          434 |          434 |             1745 |             1745 |              337 |              213 |           672 |           3546 |           2969 |             2967 |                    2136 |                    1468 |                    1468 |           2011 |           1327 |             91 |            110 |          416 |          122 |          3041 |           841 |              947 |         1547 |          502 |           1645 |        29776 |         3792 |                207 |            207 |                                  760 |                                  922 |                         705 |                         868 |                                       868 |             651 |             810 |                           810 |                        2524 |                     310 |          353 |          425 |             4272 |             2619 |          1219 |           171 |           838 |           120 |         34471 |           305 |         30790 |           255 |                    1856 |                        2340 |                    1157 |                        1142 |                    1856 |                    1871 |                        1767 |                    1868 |                        1868 |                    2685 |                        3614 |                    1153 |                        1093 |                    2686 |                        2686 |                    2700 |                        2544 |                    2694 |                        2538 |         1055 |          862 |        36879 |         1048 |                      7680 |                      7678 |                      7664 |                       7768 |                       7754 |                       7748 |          208 |                     12827 |                     12817 |                     12790 |                      13325 |                      13297 |                      13291 |             622 |                   2234 |           2176 |                                 8506 |                         10868 |                        12436 |          10412 |              2649 |         2982 |         3942 |         21973 |         21973 |                                             1876 |                                                         1874 |                                             1871 |          2930 |          3874 |              |            |             |             |             |             |             |             |             |             |             |
|--------------------------|---------------|-----------------|--------------|--------------------------------------|-----------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|----------------------------------------------------------|----------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|----------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|--------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|-----------------|------------------------|----------------|--------------------------------------|-------------------------------|------------------------------|----------------|-------------------|--------------|--------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| After                    |           759 |            1488 |          258 |                                40589 |             384 |           7632 |          407 |          510 |          215 |          466 |                320 |                480 |                                760 |                                922 |            673 |                        727 |                    890 |          832 |             354 |             410 |             303 |         1073 |          785 |                      3297 |                      2281 |                  1073 |                   785 |                       719 |                   520 |           398 |           738 |                     731 |                     385 |               2008 |               233 |              482 |                  715 |               1930 |                 1930 |            794 |              794 |               1381 |            447 |                       13603 |                       13995 |            228 |            276 |                                                      989 |                                          994 |                                          989 |                                                        989 |                  3477 |                  4036 |                  1543 |                  1769 |         8218 |         2510 |                  5926 |                  1649 |             5462 |             5468 |                    4315 |                    3015 |         2962 |          874 |             1217 |             3934 |         2803 |         1220 |           2213 |           5301 |          1316 |         28202 |                     1316 |                     2569 |              10445 |                970 |          898 |                   39085 |                   10470 |         25551 |         40034 |                11176 |                22846 |                   606 |                  1025 |                   367 |                   577 |                   750 |                  1152 |                   439 |                   640 |            5797 |                                 5820 |                   1563 |                  333 |              236 |                  333 |              236 |           1502 |            2896 |            2554 |                          2533 |         7333 |         1472 |                 1968 |             1931 |          301 |          896 |                   1047 |                    836 |         3626 |         7669 |         3066 |        36335 |          474 |          392 |                    1389 |                    1214 |                 502 |                1540 |                 319 |                 835 |                1033 |                1667 |                 562 |                 898 |           3998 |           4521 |                         647 |                         257 |               1031 |                707 |                459 |                471 |                          1368 |                          1915 |             1368 |             1910 |                          2931 |                         11178 |                         12336 |                             15243 |                         11972 |                         9066 |                         7896 |                        11518 |        19682 |        16577 |         4976 |         1617 |               225 |                  528 |          798 |          590 |               5684 |          459 |          459 |          455 |          303 |                                 1416 |                                  612 |           1077 |                       1132 |                    475 |          420 |          435 |          343 |          676 |         1732 |                9304 |            9723 |                   8574 |                   8574 |                 17152 |                 17152 |                                 4312 |         4312 |                  3963 |                  2659 |              1206 |              1794 |              1348 |              2529 |             7296 |             9571 |            14708 |            19513 |                       7335 |                       7390 |                       2933 |                       7357 |                       2949 |                       2929 |                       6937 |                       2122 |                        22344 |                    62115 |                   194 |                   169 |             7296 |            18739 |             8996 |            19267 |                      7223 |                      7263 |                      2897 |                      7288 |                      2899 |                      2875 |                      6897 |                      2079 |            19807 |            12335 |            20171 |            11603 |         1538 |          834 |                 326 |          367 |         1670 |              3603 |          434 |          434 |             1745 |             1745 |              337 |              213 |           672 |           3546 |           2969 |             2967 |                    2136 |                    1468 |                    1468 |           2011 |           1327 |             91 |            110 |          416 |          122 |          3041 |           841 |              947 |         1547 |          502 |           1645 |        29776 |         3792 |                207 |            207 |                                  760 |                                  922 |                         705 |                         868 |                                       868 |             651 |             810 |                           810 |                        2524 |                     310 |          353 |          425 |             4272 |             2619 |          1219 |           171 |           838 |           120 |         34471 |           305 |         30790 |           255 |                    1856 |                        2340 |                    1157 |                        1142 |                    1856 |                    1871 |                        1767 |                    1868 |                        1868 |                    2685 |                        3614 |                    1153 |                        1093 |                    2686 |                        2686 |                    2700 |                        2544 |                    2694 |                        2538 |         1055 |          862 |        36877 |         1047 |                      7672 |                      7670 |                      7656 |                       7752 |                       7738 |                       7732 |          207 |                     12763 |                     12753 |                     12726 |                      13197 |                      13169 |                      13163 |             610 |                   2186 |           2128 |                                 8314 |                         10380 |                        11604 |           9580 |              2425 |         2694 |         3558 |         19670 |         19670 |                                             1670 |                                                         1668 |                                             1665 |          2594 |          3426 | -0.41%       |       1.94 | -0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      |
|--------------------------|---------------|-----------------|--------------|--------------------------------------|-----------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|----------------------------------------------------------|----------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|----------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|--------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|-----------------|------------------------|----------------|--------------------------------------|-------------------------------|------------------------------|----------------|-------------------|--------------|--------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Total diff               | REGR(+3.27%)  | REGR(+1.71%)    | REGR(+0.78%) | REGR(+0.31%)                         | REGR(+0.26%)    | 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.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.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.01%) | SAME(-0.10%) | IMPR(-0.10%)              | IMPR(-0.10%)              | IMPR(-0.10%)              | IMPR(-0.21%)               | IMPR(-0.21%)               | IMPR(-0.21%)               | IMPR(-0.48%) | IMPR(-0.50%)              | IMPR(-0.50%)              | IMPR(-0.50%)              | IMPR(-0.96%)               | IMPR(-0.96%)               | IMPR(-0.96%)               | IMPR(-1.93%)    | IMPR(-2.15%)           | IMPR(-2.21%)   | IMPR(-2.26%)                         | IMPR(-4.49%)                  | IMPR(-6.69%)                 | IMPR(-7.99%)   | IMPR(-8.46%)      | IMPR(-9.66%) | IMPR(-9.74%) | IMPR(-10.48%) | IMPR(-10.48%) | IMPR(-10.98%)                                    | IMPR(-10.99%)                                                | IMPR(-11.01%)                                    | IMPR(-11.47%) | IMPR(-11.56%) | -0.41%       |       1.94 | -0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      |
|--------------------------|---------------|-----------------|--------------|--------------------------------------|-----------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|----------------------------------------------------------|----------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|----------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|--------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|--------------|---------------------------|---------------------------|---------------------------|----------------------------|----------------------------|----------------------------|-----------------|------------------------|----------------|--------------------------------------|-------------------------------|------------------------------|----------------|-------------------|--------------|--------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|

unsigned FirstOperand;
// Number of non-register operands.
unsigned NumOfNonRegOperands;
};
Copy link
Collaborator

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())) {
Copy link
Collaborator

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

Copy link
Collaborator Author

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?

Copy link
Collaborator

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());
Copy link
Collaborator

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?

Copy link
Collaborator Author

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;
Copy link
Collaborator

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.

Copy link
Collaborator Author

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.

Copy link
Collaborator Author

@andcarminati andcarminati Sep 27, 2024

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%      |
|--------------------------|-------------------------------|---------------|--------------|--------------|---------------|--------------|--------------------|--------------|----------------------------|----------------------------|----------------------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|----------------------------|----------------------------|-------------------|----------------|--------------|--------------|----------------------|----------------------------|----------------------------|-------------------------------|----------------------------|---------------------------|---------------|---------------|-----------------------------|-------------------------|------------------|------------------|------------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|------------------------------------|----------------|----------------------------|--------------|-----------------|-----------------------|---------------|--------------------|-------------------|------------------|----------------|------------------|----------------|-----------------------------|-----------------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|--------------------------------------|------------------------|----------------------|----------------------|----------------|-----------------|-----------------|-------------------------------|--------------|--------------|--------------|-------------------------|-------------------------|-----------------------------|-----------------------------|-------------------------------|-------------------------------|------------------|------------------|--------------|--------------|-------------------|----------------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|----------------------------|-----------------------|---------------------|--------------|-------------------|--------------|--------------|------------------|----------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|---------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|-----------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|---------------|------------------|----------------|------------------|----------------------------|----------------------------|------------------|-------------------|------------------|-----------------------|-------------------------|-----------------------------------|------------------|------------------|-----------------------|--------------|-------------------------|-------------------------|------------------|-------------------------|--------------|-----------------------------|--------------------|--------------|----------------|--------------|--------------|--------------------|---------------|------------------|------------------|------------------|-------------------------|---------------|---------------|--------------|-------------------|------------------|-------------------------------|----------------------------------------------|----------------------------------------------------------|----------------------------------------------|------------------------------------------------------------|------------------|------------------|--------------------|---------------|-------------------------------|--------------------|---------------|------------------------|-----------------|------------------|-------------------|-----------------|----------------|------------------------|---------------------|--------------|------------------|--------------|--------------------------|--------------|------------------|---------------------|------------------------------------|--------------------------------------|---------------|------------------------|------------------|-----------------------------|-------------------------------------------|---------------|-----------------------|--------------|-----------------------|---------------------------|---------------------|---------------------------|--------------|----------------------|--------------|---------------------------|---------------------------|--------------------|------------------|----------------------------|---------------------|--------------|------------------|------------------|---------------------------|---------------------|--------------|--------------|-----------------------|-------------------------|-----------------------|----------------------------|---------------|-----------------|---------------------------|------------------|---------------------------|-----------------------|-------------------------|----------------|--------------|-------------------------|---------------------------|---------------------------|---------------------------|---------------------|---------------------------|-----------------------|---------------------------|---------------------------|------------------------------|--------------------------|---------------|---------------------|-------------------------------|---------------------------|----------------------|---------------------------|--------------|---------------------------|------------------------------|---------------|--------------|-----------------------|---------------------|--------------|-------------------------|----------------------|--------------------|--------------|--------------------|---------------|---------------|--------------------------|--------------|--------------|--------------|--------------|----------------|------------------|----------------|--------------|-----------------|--------------|------------------|------------------|------------------------------|-----------------|------------------------------|-----------------|----------------|-------------------|-------------------|--------------|--------------|---------------|---------------|----------------|---------------|---------------|--------------------------------------------------|--------------------------------------------------------------|--------------------------------------------------|---------------|--------------------|----------------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|

Copy link
Collaborator

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!

Copy link
Collaborator

@gbossu gbossu left a 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.

@andcarminati andcarminati force-pushed the andreu.new.vec.combiners branch 3 times, most recently from 7470e63 to 9a788f6 Compare September 27, 2024 16:13
/// 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) {
Copy link
Collaborator

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.

gbossu
gbossu previously approved these changes Sep 27, 2024
Copy link
Collaborator

@gbossu gbossu left a 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!

@andcarminati andcarminati force-pushed the andreu.new.vec.combiners branch from b041c2d to f909d39 Compare September 30, 2024 08:48
@andcarminati andcarminati merged commit c8475f3 into aie-public Sep 30, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants