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

[AIEX] Propagate MMO for loads without PTR #198

Merged
merged 1 commit into from
Oct 28, 2024

Conversation

andcarminati
Copy link
Collaborator

This can prevent MachinePipeliner from considering some loads as barriers (isDependenceBarrier).

if (MO.isReg() && MO.getReg().isVirtual()) {
const Register Reg = MO.getReg();
if (const MachineInstr *RegDef = MRI.getVRegDef(Reg))
findGlobalValues(*RegDef, GVSet, VisitedInstrs, 10, MRI);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps put the 10 in a command line option right away?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recursion depth is an explosive parameter. The operands you are traversing may branch quite heavily.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With a command line we can control this now!

}
}

// Add gattered GlobalValues as MMOs.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: gathered

}

// Add gattered GlobalValues as MMOs.
for (auto GV : GVSet) {
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 we should know whether we completed the search, otherwise we may be adding an incomplete set, which can cause over-optimistic alias analysis

@@ -472,6 +539,12 @@ bool AIEPostSelectOptimize::runOnMachineFunction(MachineFunction &MF) {
}
}

// 4. Fix MMO for load instructions that don't use pointers
// registers (use vector instead, for example).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I think it adds MMOs for loads that don't already have them, irrespective of whether they are pointers or not.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed the comment accordingly.

for (auto MO : MI.uses()) {
if (MO.isGlobal()) {
GVSet.insert(MO.getGlobal());
} else if (MO.isReg() && MO.getReg().isVirtual()) {
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 you should recognize the regular address modifiers here and stop recursion. You don't want to descend into integer operands of e.g. GEP.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @martien-de-jong, as we are in MIR now, all GEPs were translated to ptradd, mul and etc.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GEP, PTRADD, not much different. PTR_ADD only leads to pointers in its first operand, not in the second, so searching the second is wasted.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But what if the first operand is null (or something like G_INTTOPTR(G_CONSTANT)) and second is an integer derived from a G_PTRTOINT (or something like G_PTRTOINT(GlobalValue))? Pointer arithmetic can be crazy... like:

body:             |
  bb.1.entry:
    %1:_(p0) = G_CONSTANT i20 4
    %4:_(p0) = G_GLOBAL_VALUE @Global
    %3:_(s20) = G_PTRTOINT %4(p0)
    %7:_(s20) = G_CONSTANT i20 2
    %5:_(s20) = G_SHL %3, %7(s20)
    %6:_(p0) = G_PTR_ADD %1, %5(s20)
    $p0 = COPY %6(p0)
    PseudoRET implicit $lr, implicit $p0

...

In this example we can reach the pointer though the second operand.

Copy link
Collaborator

@martien-de-jong martien-de-jong Oct 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't mind if those programmers were punished...
But seriously, if we descend through any operator, the recursion depth is not nicely modelling processing effort. I would rather have somethin linear like number of visited nodes. And you have that already available as the size of the visited set.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed offline, the recursion limit was replaced by the number of visited instructions.

@martien-de-jong
Copy link
Collaborator

I don't think it's important, but I guess that llvm will also consider the constant table addresses as leaked (!nocapture-like)

@andcarminati
Copy link
Collaborator Author

I don't think it's important, but I guess that llvm will also consider the constant table addresses as leaked (!nocapture-like)

Humm, I am trying to understand how this can affect us....

@andcarminati
Copy link
Collaborator Author

QoR results:

|--------------------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|----------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|----------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Core_Compute_Cycle_Count | Abs_bf16_0   | Abs_int8_0   | Add2D_0      | Add2D_1      | Add2D_Standalone_0 | Add2D_Standalone_1 | Add2D_bf16_0 | Add2D_bf16_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_bf16_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_1 | BitShift_AIE2_int8 | BitwiseAnd_int8_0 | BitwiseNot_aie2_0 | BitwiseOr_int8_0 | BitwiseXor_aie2_int8 | Cast_aie2_bfloat16 | Cast_aie2_bfloat16_1 | 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_bfloat16_aie2 | CompareOpsBroadcasting_K_EQ_GE_GT_LE_LT_CMP_GE_int8_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_EQ_bfloat16_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_EQ_int8_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_GE_bfloat16_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 | 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_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 | DivAttributeBroadcasting_aie2_int8_0 | DivBroadcasting_aie2_0 | DivBroadcasting_aie2_1 | EleMax_aie2_bfloat16 | EleMax_aie2_int8 | EleMin_aie2_bfloat16 | EleMin_aie2_int8 | ElemDiv_aie2_0 | ElemDiv_aie2_1 | Elu_aie2_int8_0 | Erf_aie2_bf16_0 | Erf_aie2_int8_0 | Erf_aie2_int8_0_ptr_interface | Expand_aie2_bfloat16 | Expand_aie2_int8 | Floor_aie2_0 | Floor_aie2_1 | FullyConnect_aie2_bf16 | FullyConnect_aie2_int8 | GELU_0       | GELU_1       | 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_bf16_0 | InstanceNormPart2_aie2_int8_0 | InterpolateLinear1D_AIE2_bfloat16 | InterpolateLinear1D_AIE2_int8 | LayerNormC8Part1_aie2_bf16_0 | LayerNormC8Part1_aie2_int8_0 | LayerNormC8Part2_aie2_bf16_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_int8 | 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_1 | ReduceMax_bf16_0 | ReduceMax_bf16_1 | ReduceMax_int8_0 | ReduceMax_int8_1 | ReduceMeanAxis_1_aie2_bf16 | ReduceMeanAxis_1_aie2_int8 | ReduceMeanAxis_2_aie2_bf16 | ReduceMeanAxis_2_aie2_int8 | ReduceMeanAxis_3_aie2_bf16 | ReduceMeanAxis_3_aie2_int8 | ReduceMeanAxis_4_aie2_bf16 | ReduceMeanAxis_4_aie2_int8 | ReduceMeanAxis_5_aie2_bf16 | ReduceMeanAxis_5_aie2_int8 | ReduceMeanAxis_6_aie2_bf16 | 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_bf16 | ReduceSumAxis_1_aie2_int8 | ReduceSumAxis_2_aie2_bf16 | ReduceSumAxis_2_aie2_int8 | ReduceSumAxis_3_aie2_bf16 | ReduceSumAxis_3_aie2_int8 | ReduceSumAxis_4_aie2_bf16 | ReduceSumAxis_4_aie2_int8 | ReduceSumAxis_5_aie2_bf16 | ReduceSumAxis_5_aie2_int8 | ReduceSumAxis_6_aie2_bf16 | 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 | Rsqrt_aie2_int8_0 | Scale_Add_0  | Scale_Add_1  | Scale_Add_bf16_0 | Scale_Add_bf16_1 | Select_aie2_bf16 | Select_aie2_int8 | Shrink_aie2_0 | Shrink_aie2_1 | 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_bf16_0  | Sign_bf16_1  | Sign_int8_0  | Sign_int8_1  | Sin_aie2_bf16 | Sin_aie2_int8 | Slice_bfloat16_0 | Slice_int8_0 | Sqrt_bf16_0  | Sqrt_bf16_1  | Sqrt_int8_0  | Sqrt_int8_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_0       | Tanh_1       | 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_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_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         | Elu_aie2_bf16_0 | Mish_aie2_bfloat16 | PowAttributeBroadcasting_aie2_bf16_0 | Softmax_bf16_1 | Pow_bf16_0   | Reciprocal_aie2_0 | Softmax_1     | Exp_bf16_1    | Softmax_bf16_0 | Exp_bf16_0    | Averege diff | Diff stdev | Quantile #1 | Quantile #2 | Quantile #3 | Quantile #4 | Quantile #5 | Quantile #6 | Quantile #7 | Quantile #8 | Quantile #9 |
|--------------------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|----------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|----------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Before                   |          407 |          510 |          215 |          466 |                320 |                480 |          257 |          311 |                                760 |                                919 |            673 |                        727 |                    887 |          832 |             351 |             409 |             380 |             303 |         1068 |          780 |                      3271 |                      2263 |                  1068 |                   780 |                       716 |                   460 |           386 |           735 |                     378 |               2008 |               482 |               215 |              482 |                  720 |                923 |                  923 |              794 |               1413 |            446 |                       13603 |                       14379 |            204 |            271 |                                                         1627 |                                                      987 |                                             1629 |                                          992 |                                             1624 |                                          987 |                                                        987 |                  3466 |                  4025 |         7973 |         2483 |                  5891 |                  1617 |             5427 |             5426 |                    4280 |                    2983 |             1204 |             3921 |         2702 |         1185 |           2180 |           5268 |          1281 |         27957 |                     1281 |                     2537 |              10149 |                930 |          863 |                   39065 |                   10453 |         25433 |         39790 |                11106 |                22356 |                   605 |                  1024 |                   366 |                   576 |                   749 |                  1151 |                   438 |                   639 |            5519 |                                 5500 |                                 8123 |                   2139 |                   1483 |                  333 |              230 |                  333 |              230 |           2081 |           1422 |             577 |            2894 |            2554 |                          2533 |                 1960 |             1907 |          301 |          881 |                   1090 |                    829 |         2594 |         3426 |         3636 |         7677 |         3048 |        36207 |          469 |          387 |                    1389 |                    1214 |                 497 |                1534 |                 314 |                 830 |                1028 |                1661 |                 557 |                 893 |           3863 |           4382 |                         616 |                         257 |               1030 |                706 |                458 |                470 |                          1368 |                          1790 |             1368 |             1785 |                          2891 |                         11139 |                         13060 |                         12216 |                             15107 |                         11999 |                         8890 |                         7820 |                        11980 |                        11222 |        19381 |        16452 |         4784 |         1617 |               225 |                  528 |          793 |          585 |           9418 |          458 |          458 |          440 |          296 |                                 1415 |                                  612 |           1076 |                       1131 |                    475 |          420 |          408 |          343 |          568 |         1684 |                9272 |            9627 |                   8570 |                   8570 |                 17152 |                 17152 |                                 4312 |         4312 |                  3962 |                  2658 |              1203 |              1791 |              2400 |             7193 |             9433 |            14509 |            19315 |                      13541 |                       7438 |                      13577 |                       7500 |                       7735 |                       2932 |                      13547 |                       7465 |                       7714 |                       2949 |                       7721 |                       2928 |                       6867 |                       2111 |                        22137 |                    61745 |                   193 |                   169 |             7193 |            18469 |             8797 |            19069 |                     12647 |                      7149 |                     12669 |                      7190 |                      7593 |                      2879 |                     12684 |                      7211 |                      7596 |                      2882 |                      7579 |                      2855 |                      6816 |                      2071 |            19617 |            12217 |            20005 |            11482 |         1346 |          738 |                 326 |          367 |         1248 |              3603 |              2376 |          369 |          369 |             1741 |             1741 |              328 |              213 |           671 |           759 |           3482 |           2968 |             2966 |                    2138 |                    1467 |                    1467 |           2011 |           1327 |             91 |            110 |         1078 |          210 |          416 |          122 |          3009 |           841 |              945 |         1545 |        29776 |         3792 |        19157 |        19157 |                207 |            207 |                                  760 |                                  919 |                         705 |                         865 |                                       865 |             651 |             810 |                           810 |                        2524 |                     310 |         2694 |         3558 |          348 |          420 |             4264 |             2595 |          1217 |           169 |           836 |           118 |         34469 |           303 |         30723 |           252 |                    1856 |                        2338 |                    1155 |                        1140 |                    1856 |                        1752 |                    1871 |                        1767 |                    1868 |                        1868 |                    2685 |                        3612 |                    1149 |                        1089 |                    2686 |                        2686 |                    2700 |                        2544 |                    2694 |                        2538 |         1199 |          862 |            1375 |               5661 |                                41102 |           1643 |        35597 |              1363 |           502 |          1467 |           7632 |          7328 |              |            |             |             |             |             |             |             |             |             |             |
|--------------------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|----------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|----------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| After                    |          407 |          510 |          215 |          466 |                320 |                480 |          257 |          311 |                                760 |                                919 |            673 |                        727 |                    887 |          832 |             351 |             409 |             380 |             303 |         1068 |          780 |                      3271 |                      2263 |                  1068 |                   780 |                       716 |                   460 |           386 |           735 |                     378 |               2008 |               482 |               215 |              482 |                  720 |                923 |                  923 |              794 |               1413 |            446 |                       13603 |                       14379 |            204 |            271 |                                                         1627 |                                                      987 |                                             1629 |                                          992 |                                             1624 |                                          987 |                                                        987 |                  3466 |                  4025 |         7973 |         2483 |                  5891 |                  1617 |             5427 |             5426 |                    4280 |                    2983 |             1204 |             3921 |         2702 |         1185 |           2180 |           5268 |          1281 |         27957 |                     1281 |                     2537 |              10149 |                930 |          863 |                   39065 |                   10453 |         25433 |         39790 |                11106 |                22356 |                   605 |                  1024 |                   366 |                   576 |                   749 |                  1151 |                   438 |                   639 |            5519 |                                 5500 |                                 8123 |                   2139 |                   1483 |                  333 |              230 |                  333 |              230 |           2081 |           1422 |             577 |            2894 |            2554 |                          2533 |                 1960 |             1907 |          301 |          881 |                   1090 |                    829 |         2594 |         3426 |         3636 |         7677 |         3048 |        36207 |          469 |          387 |                    1389 |                    1214 |                 497 |                1534 |                 314 |                 830 |                1028 |                1661 |                 557 |                 893 |           3863 |           4382 |                         616 |                         257 |               1030 |                706 |                458 |                470 |                          1368 |                          1790 |             1368 |             1785 |                          2891 |                         11139 |                         13060 |                         12216 |                             15107 |                         11999 |                         8890 |                         7820 |                        11980 |                        11222 |        19381 |        16452 |         4784 |         1617 |               225 |                  528 |          793 |          585 |           9418 |          458 |          458 |          440 |          296 |                                 1415 |                                  612 |           1076 |                       1131 |                    475 |          420 |          408 |          343 |          568 |         1684 |                9272 |            9627 |                   8570 |                   8570 |                 17152 |                 17152 |                                 4312 |         4312 |                  3962 |                  2658 |              1203 |              1791 |              2400 |             7193 |             9433 |            14509 |            19315 |                      13541 |                       7438 |                      13577 |                       7500 |                       7735 |                       2932 |                      13547 |                       7465 |                       7714 |                       2949 |                       7721 |                       2928 |                       6867 |                       2111 |                        22137 |                    61745 |                   193 |                   169 |             7193 |            18469 |             8797 |            19069 |                     12647 |                      7149 |                     12669 |                      7190 |                      7593 |                      2879 |                     12684 |                      7211 |                      7596 |                      2882 |                      7579 |                      2855 |                      6816 |                      2071 |            19617 |            12217 |            20005 |            11482 |         1346 |          738 |                 326 |          367 |         1248 |              3603 |              2376 |          369 |          369 |             1741 |             1741 |              328 |              213 |           671 |           759 |           3482 |           2968 |             2966 |                    2138 |                    1467 |                    1467 |           2011 |           1327 |             91 |            110 |         1078 |          210 |          416 |          122 |          3009 |           841 |              945 |         1545 |        29776 |         3792 |        19157 |        19157 |                207 |            207 |                                  760 |                                  919 |                         705 |                         865 |                                       865 |             651 |             810 |                           810 |                        2524 |                     310 |         2694 |         3558 |          348 |          420 |             4264 |             2595 |          1217 |           169 |           836 |           118 |         34469 |           303 |         30723 |           252 |                    1856 |                        2338 |                    1155 |                        1140 |                    1856 |                        1752 |                    1871 |                        1767 |                    1868 |                        1868 |                    2685 |                        3612 |                    1149 |                        1089 |                    2686 |                        2686 |                    2700 |                        2544 |                    2694 |                        2538 |         1199 |          862 |            1363 |               5581 |                                40462 |           1583 |        34189 |              1231 |           426 |          1227 |           6352 |          6048 | -0.27%       |       1.92 | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      |
|--------------------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|----------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|----------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Total diff               | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)                       | SAME(+0.00%)                       | SAME(+0.00%)   | SAME(+0.00%)               | SAME(+0.00%)           | SAME(+0.00%) | SAME(+0.00%)    | SAME(+0.00%)    | SAME(+0.00%)    | SAME(+0.00%)    | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)              | SAME(+0.00%)          | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)            | SAME(+0.00%)       | SAME(+0.00%)      | SAME(+0.00%)      | SAME(+0.00%)     | SAME(+0.00%)         | SAME(+0.00%)       | SAME(+0.00%)         | SAME(+0.00%)     | SAME(+0.00%)       | SAME(+0.00%)   | SAME(+0.00%)                | SAME(+0.00%)                | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)                                                 | SAME(+0.00%)                                             | SAME(+0.00%)                                     | SAME(+0.00%)                                 | SAME(+0.00%)                                     | SAME(+0.00%)                                 | SAME(+0.00%)                                               | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)             | SAME(+0.00%)             | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%) | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)         | SAME(+0.00%)         | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)    | SAME(+0.00%)                         | SAME(+0.00%)                         | SAME(+0.00%)           | SAME(+0.00%)           | SAME(+0.00%)         | SAME(+0.00%)     | SAME(+0.00%)         | SAME(+0.00%)     | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)    | SAME(+0.00%)    | SAME(+0.00%)    | SAME(+0.00%)                  | SAME(+0.00%)         | SAME(+0.00%)     | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)           | SAME(+0.00%)           | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)                | SAME(+0.00%)                | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%)                  | SAME(+0.00%)                  | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)                  | SAME(+0.00%)                  | SAME(+0.00%)                  | SAME(+0.00%)                  | SAME(+0.00%)                      | SAME(+0.00%)                  | SAME(+0.00%)                 | SAME(+0.00%)                 | SAME(+0.00%)                 | SAME(+0.00%)                 | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)      | SAME(+0.00%)         | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)   | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)                         | SAME(+0.00%)                         | SAME(+0.00%)   | SAME(+0.00%)               | SAME(+0.00%)           | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)        | SAME(+0.00%)    | SAME(+0.00%)           | SAME(+0.00%)           | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)                         | SAME(+0.00%) | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)      | SAME(+0.00%)      | SAME(+0.00%)      | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)                 | SAME(+0.00%)             | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)        | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)      | SAME(+0.00%)      | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)     | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)     | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)       | SAME(+0.00%)   | SAME(+0.00%)                         | SAME(+0.00%)                         | SAME(+0.00%)                | SAME(+0.00%)                | SAME(+0.00%)                              | SAME(+0.00%)    | SAME(+0.00%)    | SAME(+0.00%)                  | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%) | SAME(+0.00%) | IMPR(-0.87%)    | IMPR(-1.41%)       | IMPR(-1.56%)                         | IMPR(-3.65%)   | IMPR(-3.96%) | IMPR(-9.68%)      | IMPR(-15.14%) | IMPR(-16.36%) | IMPR(-16.77%)  | IMPR(-17.47%) | -0.27%       |       1.92 | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      |
|--------------------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|-----------------|-----------------|-----------------|-----------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------|-----------------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|---------------|---------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|----------------|----------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|----------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|------------------------------|--------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|----------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|

@martien-de-jong
Copy link
Collaborator

Just for future: We've seen cases where the Globals themselves don't have an address space, but they are casted to a pointer of the right AS. I guess the first AS we encounter coming down from the load is the one intended by the programmer. I also think we can trust standard AA to follow that pointer cast down to the Global, so we could also use it as address for the MMO.

@andcarminati andcarminati force-pushed the andreu.fix.memop branch 4 times, most recently from 4e7ce06 to 3462674 Compare October 21, 2024 08:50
static_cast<const AIEBaseInstrInfo *>(ST.getInstrInfo());

// Skip subvector copy.
if (MI->isCopy()) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I guess there could be multiple copies. Isn't there a helper function somewhere to look through copies?

llvm/lib/Target/AIE/AIEPostSelectOptimize.cpp Show resolved Hide resolved
if (LoadMMODeepSearch)
// Look to everything!
Success &= findGlobalValues(RegDef, GVSet, VisitedInstrs, MRI,
LoadMMOSearchLimit);
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 we should avoid committing the findGlobalValues as it is overly optimistic. Maybe keep it on a separate branch for now?

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 can't say that this is optimistic or not, I can say that this is harder to break if we consider the pattern recognition. It tracks everything (in terms of globals) on the way of VLDB.4X load, it only rejects when it reaches function parameters (because they can be pointers as well). For AA perspective, if we miss one MMO is problem. On the other hand, if you include non-used ones, there is no problem because it will lead to more dependencies (just performance impacts).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My main "issue" with it is that it considers loads safe, while I think they are only safe when we have already found a "vector" of pointers. In that case, it does not matter what we add to the vector, it could be a constant vector, or some loaded quantity.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new version addresses this situation: we need to find a select(bcast(C1), bcast(C1), mask) somewhere in the chain up starting form the load.

@andcarminati andcarminati force-pushed the andreu.fix.memop branch 2 times, most recently from 08af3de to d775df6 Compare October 22, 2024 10:20
MachineRegisterInfo &MRI) {

if (MI->isCopy())
MI = getDefIgnoringCopiesAndBitcasts(MI->getOperand(1).getReg(), MRI);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Why not unconditionally call MI = getDefIgnoringCopiesAndBitcasts(MI->getOperand(1).getReg(), MRI);?

@andcarminati
Copy link
Collaborator Author

Hi @gbossu, now I hope we converged ;-)

It is also possible to SWP (pre) Softmax with: -mllvm -aie-pipeliner-max-stagecount=6 -mllvm -pipeliner-max-stages=5 -fno-unroll-loops


for (MachineInstr &MI : MBB) {
// We want to analyze just loads without post increment.
if (!MI.mayLoad() || !MI.memoperands_empty() || MI.getNumOperands() != 2)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an attempt to recognise a multi-way load in an architecture-neutral way. Why not add that to the set of abstract operations?

return false;
}
return UnknownSide /*offset side is found*/ &&
KnownSide /*broadcasted side is found*/;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CHECK: KnownSide tells us that operand can be traced wholly to a set of objects. UnknownSide might be anything, but cannot introduce new objects without also introducing undefined behaviour. I have a feeling we only need to check KnownSide. Moreover, I would not use the term 'broadcasted side'. We may later generalize to other ways to construct a vector of object designations. 'object side' rhymes better with 'offset side'.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: you couldn't directly assign to KnownSide anymore, instead do a sticky update if the visit function returns true.

KnownSide = visitVAdd(*VOp, TII, MRI, GVSet);
else if (VOp->Type == Operation::SELECT)
KnownSide = visitVSelect(*VOp, TII, MRI, GVSet);
else
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we could also deal with BROADCAST here?

Copy link
Collaborator Author

@andcarminati andcarminati Oct 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By correctness yes. But, due to architectural restrictions (odd-even memory banks), I believe that this cannot represent a real case. A final pointer must be constructed with at least two broadcasts.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Select (add(broadcast, offset), add(broadcast,offset)) would fit?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It can be, however I prefer to only include already existing cases here. As discussed before, we can include any new pattern on demand.

// from SELECT or BROADCAST.
if (!VOp)
return false;
if (VOp->Type == Operation::SELECT)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess visitXXX could return false if VOp isn't XXX

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As this could represent a implementation mistake, I inserted asserts.

if (!MI.mayLoad() || !MI.memoperands_empty() || MI.getNumOperands() != 2)
continue;
SmallPtrSet<const Value *, 4> GVSet;
if (traverseVecPointerChain(MI.getOperand(1).getReg(), GVSet, TII, MRI)) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Operand(1) may not be a register

Copy link
Collaborator Author

@andcarminati andcarminati Oct 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we parse the abstract load now, we started to have this guarantee.

@@ -441,6 +441,20 @@ struct AIEBaseInstrInfo : public TargetInstrInfo {
llvm_unreachable("Target didn't implement isProfitableToSplitType!");
}

/// Abstract vector operation to help the decoding of complex operations.
struct AbstractVecOp {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: We could also use this for non-vector ops

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed accordingly.

if (MO.isGlobal()) {
GVSet.insert(MO.getGlobal());
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.

MI could be anything, e.g. the top of a tree of selects. I guess we have to return false whenever MO isn't a global and collect all used globals.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I believe any operand that cannot be tracked as a memory location should make us return false

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done! Now we consider only the case with one src operand that loads a global.

@andcarminati
Copy link
Collaborator Author

New QoR results (updated):

|--------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|-------------------------------------------|-------------------------------------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------------------------------|--------------|--------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|------------------------------|------------------------------|---------------|---------------|--------------------|--------------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|------------------|------------------|---------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|-------------------------------|---------------------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|--------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Core_Compute_Cycle_Count | Mish_aie2_int8 | Abs_bf16_0   | Abs_int8_0   | Add2D_0      | Add2D_1      | Add2D_Standalone_0 | Add2D_Standalone_1 | Add2D_bf16_0 | Add2D_bf16_1 | AddAttributeBroadcasting_aie2_bf16 | AddAttributeBroadcasting_aie2_int8 | AddBf16_aie2_0 | AddBroadcastingBf16_aie2_0 | AddBroadcasting_aie2_0 | Add_aie2_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 | BitwiseAnd_int8_0 | 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 | CompareOpsAttributeBroadcasting_aie2_bf16 | CompareOpsAttributeBroadcasting_aie2_int8 | CompareOpsBroadcasting_K_EQ_GE_GT_LE_LT_CMP_GE_bfloat16_aie2 | CompareOpsBroadcasting_K_EQ_GE_GT_LE_LT_CMP_GE_int8_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_EQ_bfloat16_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_EQ_int8_aie2 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_GE_bfloat16_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 | CompareOps_K_EQ_GE_GT_LE_LT_CMP_GT_int32_aie2 | Conv2D_0     | Conv2D_1     | Conv2D_2x8_0 | Conv2D_2x8_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_Transpose_bf16_AIE2_0 | Conv2D_Transpose_bf16_AIE2_1 | Conv2D_bf16_0 | Conv2D_bf16_1 | Conv2D_edge_mode_0 | Conv2D_edge_mode_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 | DivAttributeBroadcasting_aie2_int8_0 | DivBroadcasting_aie2_0 | DivBroadcasting_aie2_1 | EleMax_aie2_bfloat16 | EleMax_aie2_int8 | EleMin_aie2_bfloat16 | EleMin_aie2_int8 | ElemDiv_aie2_0 | ElemDiv_aie2_1 | Elu_aie2_int8_0 | Erf_aie2_bf16_0 | Erf_aie2_int8_0 | Erf_aie2_int8_0_ptr_interface | Expand_aie2_bfloat16 | Expand_aie2_int8 | Floor_aie2_0 | Floor_aie2_1 | FullyConnect_aie2_bf16 | FullyConnect_aie2_int8 | GELU_0       | GELU_1       | GEMM_bf16_0  | GEMM_bf16_1  | GEMM_int8_0  | GEMM_int8_1  | GEMV_0       | GEMV_1       | 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 | 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_bf16_0 | InstanceNormPart2_aie2_int8_0 | InterpolateLinear1D_AIE2_bfloat16 | InterpolateLinear1D_AIE2_int8 | LayerNormC8Part1_aie2_bf16_0 | LayerNormC8Part1_aie2_int8_0 | LayerNormC8Part2_aie2_bf16_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  | MaxPool2D_bf16_0 | MaxPool2D_bf16_1 | Mod_aie2_bf16 | 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      | Pad2D_bf16_0 | 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_1 | ReduceMax_bf16_0 | ReduceMax_bf16_1 | ReduceMax_int8_0 | ReduceMax_int8_1 | ReduceMeanAxis_1_aie2_bf16 | ReduceMeanAxis_1_aie2_int8 | ReduceMeanAxis_2_aie2_bf16 | ReduceMeanAxis_2_aie2_int8 | ReduceMeanAxis_3_aie2_bf16 | ReduceMeanAxis_3_aie2_int8 | ReduceMeanAxis_4_aie2_bf16 | ReduceMeanAxis_4_aie2_int8 | ReduceMeanAxis_5_aie2_bf16 | ReduceMeanAxis_5_aie2_int8 | ReduceMeanAxis_6_aie2_bf16 | ReduceMeanAxis_6_aie2_int8 | ReduceMeanAxis_7_aie2_bf16 | ReduceMeanAxis_7_aie2_int8 | ReduceMin1D_aie2_bf16 | ReduceMin1D_aie2_int8 | ReduceMin_bf16_0 | ReduceMin_bf16_1 | ReduceMin_int8_0 | ReduceMin_int8_1 | ReduceProdAxis_1_aie2_bf16 | ReduceProdAxis_2_aie2_bf16 | ReduceProdAxis_3_aie2_bf16 | ReduceProdAxis_4_aie2_bf16 | ReduceProdAxis_5_aie2_bf16 | ReduceProdAxis_6_aie2_bf16 | ReduceProdAxis_7_aie2_bf16 | ReduceSumAxis_1_aie2_bf16 | ReduceSumAxis_1_aie2_int8 | ReduceSumAxis_2_aie2_bf16 | ReduceSumAxis_2_aie2_int8 | ReduceSumAxis_3_aie2_bf16 | ReduceSumAxis_3_aie2_int8 | ReduceSumAxis_4_aie2_bf16 | ReduceSumAxis_4_aie2_int8 | ReduceSumAxis_5_aie2_bf16 | ReduceSumAxis_5_aie2_int8 | ReduceSumAxis_6_aie2_bf16 | 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 | Rsqrt_aie2_int8_0 | Scale_Add_0  | Scale_Add_1  | Scale_Add_bf16_0 | Scale_Add_bf16_1 | Select_aie2_bf16 | Select_aie2_int8 | Shrink_aie2_0 | Shrink_aie2_1 | 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_bf16_0  | Sign_bf16_1  | Sign_int8_0  | Sign_int8_1  | Sin_aie2_bf16 | Sin_aie2_int8 | Slice_bfloat16_0 | Slice_int8_0 | Sqrt_bf16_0  | Sqrt_bf16_1  | Sqrt_int8_0  | Sqrt_int8_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_0       | Tanh_1       | Tanh_int8_0  | Tanh_int8_1  | ThresholdedRelu_aie2_bfloat16 | ThresholdedRelu_aie2_int8 | 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_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_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         | Elu_aie2_bf16_0 | Mish_aie2_bfloat16 | PowAttributeBroadcasting_aie2_bf16_0 | Pow_bf16_1   | Pow_bf16_0   | Reciprocal_aie2_0 | Softmax_1     | Exp_bf16_1    | Softmax_bf16_0 | Exp_bf16_0    | Averege diff | Diff stdev | Quantile #1 | Quantile #2 | Quantile #3 | Quantile #4 | Quantile #5 | Quantile #6 | Quantile #7 | Quantile #8 | Quantile #9 |
|--------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|-------------------------------------------|-------------------------------------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------------------------------|--------------|--------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|------------------------------|------------------------------|---------------|---------------|--------------------|--------------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|------------------|------------------|---------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|-------------------------------|---------------------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|--------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Baseline (aie-public)    |           9417 |          376 |          510 |          217 |          434 |                322 |                482 |          254 |          298 |                                762 |                                806 |            673 |                        728 |                    775 |          725 |         1068 |          780 |                      3247 |                      2247 |                  1068 |                   780 |                       387 |                   406 |           306 |           415 |                     667 |                     361 |               2008 |               467 |               135 |              467 |                  720 |                974 |                  974 |            725 |              725 |               1413 |            446 |                       13604 |                       14380 |            204 |            246 |                                      1469 |                                      1185 |                                                         1425 |                                                      960 |                                             1432 |                                          967 |                                             1444 |                                          978 |                                                        978 |                                          1098 |         7687 |         2458 |           21 |           21 |                  5885 |                  1612 |             5785 |             5419 |                    4274 |                    2978 |         2940 |          852 |             1175 |             3892 |         2646 |         1143 |           2174 |           5262 |          1275 |         27503 |                     1275 |                     2532 |              10145 |                923 |          857 |                   53848 |                   14444 |                       433724 |                         6293 |         23279 |         38224 |              30300 |              18717 |                11094 |                21504 |                   603 |                   990 |                   364 |                   558 |                   747 |                  1149 |                   436 |                   637 |            5382 |                                 5372 |                                 7802 |                   2059 |                   1450 |                  227 |              164 |                  227 |              164 |           2001 |           1388 |             578 |            2894 |            2554 |                          2533 |                 1960 |             1907 |          315 |          881 |                   1090 |                    829 |         2594 |         3426 |         3620 |         7661 |         2797 |        32931 |          469 |          387 |                    1214 |                 495 |                1532 |                 312 |                 828 |                1026 |                1659 |                 555 |                 891 |                         556 |                         284 |               1434 |                966 |                417 |                427 |                          1368 |                          1590 |             1368 |             1585 |                          2882 |                         11303 |                          9456 |                         12180 |                              1765 |                          2617 |                         8890 |                         7798 |                        11278 |                        11222 |        19121 |        16192 |         4148 |         1617 |               225 |                  528 |         1467 |         1259 |             1797 |             1269 |          5247 |          548 |          548 |          505 |          321 |                                 1555 |                                  581 |           1119 |                       1174 |                    358 |          295 |          779 |          455 |          568 |         1684 |         2394 |                9208 |            9595 |                   8570 |                   8570 |                 17147 |                 17147 |                                 4312 |         4312 |                  4065 |                  2669 |              1224 |              1846 |              2155 |             7193 |             9433 |            14509 |            19315 |                      13034 |                       7527 |                      13070 |                       7586 |                       7229 |                       3022 |                      13040 |                       7553 |                       7208 |                       3039 |                       7215 |                       3018 |                       6263 |                       2255 |                   188 |                   164 |             7193 |            18469 |             8797 |            19069 |                      35922 |                      18052 |                       9185 |                      35954 |                       9184 |                       9168 |                       1894 |                     11947 |                      7235 |                     11970 |                      7275 |                      7060 |                      2969 |                     11983 |                      7302 |                      7063 |                      2972 |                      7046 |                      2945 |                      6212 |                      2215 |            12209 |            12209 |            19670 |            11400 |         1421 |          781 |                 233 |          367 |         1092 |              3603 |              2376 |          367 |          367 |             1709 |             1709 |              329 |              206 |           658 |           759 |           3608 |           2968 |             2966 |                    1954 |                    1275 |                    1275 |           2627 |           1727 |             91 |            110 |         1078 |          210 |          417 |          123 |          3009 |           841 |              945 |         1545 |        29776 |         3792 |        19157 |        19157 |                207 |            207 |                                  762 |                                  806 |                         706 |                         753 |                                       753 |             651 |             703 |                           703 |                        1143 |                     300 |         1964 |         2572 |          339 |          407 |                           484 |                       865 |             4264 |             2595 |          1217 |           169 |           836 |           118 |         34469 |           303 |         30659 |           252 |                    1856 |                        2338 |                    1155 |                        1140 |                    1856 |                        1752 |                    1871 |                        1767 |                    1868 |                        1868 |                    2685 |                        3612 |                    1149 |                        1089 |                    2686 |                        2686 |                    2700 |                        2544 |                    2694 |                        2538 |          907 |          846 |            2628 |               5535 |                                41102 |        35603 |        35597 |              1363 |           502 |          1467 |           7631 |          7328 |              |            |             |             |             |             |             |             |             |             |             |
|--------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|-------------------------------------------|-------------------------------------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------------------------------|--------------|--------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|------------------------------|------------------------------|---------------|---------------|--------------------|--------------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|------------------|------------------|---------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|-------------------------------|---------------------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|--------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| This PR                  |           9481 |          376 |          510 |          217 |          434 |                322 |                482 |          254 |          298 |                                762 |                                806 |            673 |                        728 |                    775 |          725 |         1068 |          780 |                      3247 |                      2247 |                  1068 |                   780 |                       387 |                   406 |           306 |           415 |                     667 |                     361 |               2008 |               467 |               135 |              467 |                  720 |                974 |                  974 |            725 |              725 |               1413 |            446 |                       13604 |                       14380 |            204 |            246 |                                      1469 |                                      1185 |                                                         1425 |                                                      960 |                                             1432 |                                          967 |                                             1444 |                                          978 |                                                        978 |                                          1098 |         7687 |         2458 |           21 |           21 |                  5885 |                  1612 |             5785 |             5419 |                    4274 |                    2978 |         2940 |          852 |             1175 |             3892 |         2646 |         1143 |           2174 |           5262 |          1275 |         27503 |                     1275 |                     2532 |              10145 |                923 |          857 |                   53848 |                   14444 |                       433724 |                         6293 |         23279 |         38224 |              30300 |              18717 |                11094 |                21504 |                   603 |                   990 |                   364 |                   558 |                   747 |                  1149 |                   436 |                   637 |            5382 |                                 5372 |                                 7802 |                   2059 |                   1450 |                  227 |              164 |                  227 |              164 |           2001 |           1388 |             578 |            2894 |            2554 |                          2533 |                 1960 |             1907 |          315 |          881 |                   1090 |                    829 |         2594 |         3426 |         3620 |         7661 |         2797 |        32931 |          469 |          387 |                    1214 |                 495 |                1532 |                 312 |                 828 |                1026 |                1659 |                 555 |                 891 |                         556 |                         284 |               1434 |                966 |                417 |                427 |                          1368 |                          1590 |             1368 |             1585 |                          2882 |                         11303 |                          9456 |                         12180 |                              1765 |                          2617 |                         8890 |                         7798 |                        11278 |                        11222 |        19121 |        16192 |         4148 |         1617 |               225 |                  528 |         1467 |         1259 |             1797 |             1269 |          5247 |          548 |          548 |          505 |          321 |                                 1555 |                                  581 |           1119 |                       1174 |                    358 |          295 |          779 |          455 |          568 |         1684 |         2394 |                9208 |            9595 |                   8570 |                   8570 |                 17147 |                 17147 |                                 4312 |         4312 |                  4065 |                  2669 |              1224 |              1846 |              2155 |             7193 |             9433 |            14509 |            19315 |                      13034 |                       7527 |                      13070 |                       7586 |                       7229 |                       3022 |                      13040 |                       7553 |                       7208 |                       3039 |                       7215 |                       3018 |                       6263 |                       2255 |                   188 |                   164 |             7193 |            18469 |             8797 |            19069 |                      35922 |                      18052 |                       9185 |                      35954 |                       9184 |                       9168 |                       1894 |                     11947 |                      7235 |                     11970 |                      7275 |                      7060 |                      2969 |                     11983 |                      7302 |                      7063 |                      2972 |                      7046 |                      2945 |                      6212 |                      2215 |            12209 |            12209 |            19670 |            11400 |         1421 |          781 |                 233 |          367 |         1092 |              3603 |              2376 |          367 |          367 |             1709 |             1709 |              329 |              206 |           658 |           759 |           3608 |           2968 |             2966 |                    1954 |                    1275 |                    1275 |           2627 |           1727 |             91 |            110 |         1078 |          210 |          417 |          123 |          3009 |           841 |              945 |         1545 |        29776 |         3792 |        19157 |        19157 |                207 |            207 |                                  762 |                                  806 |                         706 |                         753 |                                       753 |             651 |             703 |                           703 |                        1143 |                     300 |         1964 |         2572 |          339 |          407 |                           484 |                       865 |             4264 |             2595 |          1217 |           169 |           836 |           118 |         34469 |           303 |         30659 |           252 |                    1856 |                        2338 |                    1155 |                        1140 |                    1856 |                        1752 |                    1871 |                        1767 |                    1868 |                        1868 |                    2685 |                        3612 |                    1149 |                        1089 |                    2686 |                        2686 |                    2700 |                        2544 |                    2694 |                        2538 |          907 |          846 |            2604 |               5455 |                                40462 |        34195 |        34189 |              1230 |           426 |          1227 |           6352 |          6048 | -0.26%       |       1.88 | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      |
|--------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|-------------------------------------------|-------------------------------------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------------------------------|--------------|--------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|------------------------------|------------------------------|---------------|---------------|--------------------|--------------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|------------------|------------------|---------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|-------------------------------|---------------------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|--------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|
| Total diff               | REGR(+0.68%)   | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)                       | SAME(+0.00%)                       | SAME(+0.00%)   | SAME(+0.00%)               | SAME(+0.00%)           | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)              | SAME(+0.00%)          | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%)       | SAME(+0.00%)      | SAME(+0.00%)      | SAME(+0.00%)     | SAME(+0.00%)         | SAME(+0.00%)       | SAME(+0.00%)         | SAME(+0.00%)   | SAME(+0.00%)     | SAME(+0.00%)       | SAME(+0.00%)   | SAME(+0.00%)                | SAME(+0.00%)                | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)                              | SAME(+0.00%)                              | SAME(+0.00%)                                                 | SAME(+0.00%)                                             | SAME(+0.00%)                                     | SAME(+0.00%)                                 | SAME(+0.00%)                                     | SAME(+0.00%)                                 | SAME(+0.00%)                                               | SAME(+0.00%)                                  | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)             | SAME(+0.00%)             | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%) | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%)                 | SAME(+0.00%)                 | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%)         | SAME(+0.00%)         | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)    | SAME(+0.00%)                         | SAME(+0.00%)                         | SAME(+0.00%)           | SAME(+0.00%)           | SAME(+0.00%)         | SAME(+0.00%)     | SAME(+0.00%)         | SAME(+0.00%)     | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)    | SAME(+0.00%)    | SAME(+0.00%)    | SAME(+0.00%)                  | SAME(+0.00%)         | SAME(+0.00%)     | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)           | SAME(+0.00%)           | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)            | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)        | SAME(+0.00%)                | SAME(+0.00%)                | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%)       | SAME(+0.00%)                  | SAME(+0.00%)                  | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)                  | SAME(+0.00%)                  | SAME(+0.00%)                  | SAME(+0.00%)                  | SAME(+0.00%)                      | SAME(+0.00%)                  | SAME(+0.00%)                 | SAME(+0.00%)                 | SAME(+0.00%)                 | SAME(+0.00%)                 | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)      | SAME(+0.00%)         | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)  | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)                         | SAME(+0.00%)                         | SAME(+0.00%)   | SAME(+0.00%)               | SAME(+0.00%)           | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)        | SAME(+0.00%)    | SAME(+0.00%)           | SAME(+0.00%)           | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)                         | SAME(+0.00%) | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)      | SAME(+0.00%)      | SAME(+0.00%)      | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)          | SAME(+0.00%)          | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)               | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)              | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)        | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)      | SAME(+0.00%)      | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)     | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%)            | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%)   | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)     | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)       | SAME(+0.00%)   | SAME(+0.00%)                         | SAME(+0.00%)                         | SAME(+0.00%)                | SAME(+0.00%)                | SAME(+0.00%)                              | SAME(+0.00%)    | SAME(+0.00%)    | SAME(+0.00%)                  | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%) | SAME(+0.00%)                  | SAME(+0.00%)              | SAME(+0.00%)     | SAME(+0.00%)     | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)  | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%)            | SAME(+0.00%)                | SAME(+0.00%) | SAME(+0.00%) | IMPR(-0.91%)    | IMPR(-1.45%)       | IMPR(-1.56%)                         | IMPR(-3.95%) | IMPR(-3.96%) | IMPR(-9.76%)      | IMPR(-15.14%) | IMPR(-16.36%) | IMPR(-16.76%)  | IMPR(-17.47%) | -0.26%       |       1.88 | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      | +0.00%      |
|--------------------------|----------------|--------------|--------------|--------------|--------------|--------------------|--------------------|--------------|--------------|------------------------------------|------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|---------------------------|---------------------------|-----------------------|-----------------------|---------------------------|-----------------------|---------------|---------------|-------------------------|-------------------------|--------------------|-------------------|-------------------|------------------|----------------------|--------------------|----------------------|----------------|------------------|--------------------|----------------|-----------------------------|-----------------------------|----------------|----------------|-------------------------------------------|-------------------------------------------|--------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------|----------------------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------------------------------|-----------------------------------------------|--------------|--------------|--------------|--------------|-----------------------|-----------------------|------------------|------------------|-------------------------|-------------------------|--------------|--------------|------------------|------------------|--------------|--------------|----------------|----------------|---------------|---------------|--------------------------|--------------------------|--------------------|--------------------|--------------|-------------------------|-------------------------|------------------------------|------------------------------|---------------|---------------|--------------------|--------------------|----------------------|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------|--------------------------------------|--------------------------------------|------------------------|------------------------|----------------------|------------------|----------------------|------------------|----------------|----------------|-----------------|-----------------|-----------------|-------------------------------|----------------------|------------------|--------------|--------------|------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|-------------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|---------------------|-----------------------------|-----------------------------|--------------------|--------------------|--------------------|--------------------|-------------------------------|-------------------------------|------------------|------------------|-------------------------------|-------------------------------|-------------------------------|-------------------------------|-----------------------------------|-------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|--------------|--------------|--------------|--------------|-------------------|----------------------|--------------|--------------|------------------|------------------|---------------|--------------|--------------|--------------|--------------|--------------------------------------|--------------------------------------|----------------|----------------------------|------------------------|--------------|--------------|--------------|--------------|--------------|--------------|---------------------|-----------------|------------------------|------------------------|-----------------------|-----------------------|--------------------------------------|--------------|-----------------------|-----------------------|-------------------|-------------------|-------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|-----------------------|-----------------------|------------------|------------------|------------------|------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|----------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|---------------------------|------------------|------------------|------------------|------------------|--------------|--------------|---------------------|--------------|--------------|-------------------|-------------------|--------------|--------------|------------------|------------------|------------------|------------------|---------------|---------------|----------------|----------------|------------------|-------------------------|-------------------------|-------------------------|----------------|----------------|----------------|----------------|--------------|--------------|--------------|--------------|---------------|---------------|------------------|--------------|--------------|--------------|--------------|--------------|--------------------|----------------|--------------------------------------|--------------------------------------|-----------------------------|-----------------------------|-------------------------------------------|-----------------|-----------------|-------------------------------|-----------------------------|-------------------------|--------------|--------------|--------------|--------------|-------------------------------|---------------------------|------------------|------------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|---------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|-------------------------|-----------------------------|--------------|--------------|-----------------|--------------------|--------------------------------------|--------------|--------------|-------------------|---------------|---------------|----------------|---------------|--------------|------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|-------------|

@andcarminati andcarminati force-pushed the andreu.fix.memop branch 2 times, most recently from 2e69d96 to e176158 Compare October 25, 2024 08:58

// Recognize ADD ((ADD | SELECT), Unknown)
bool visitVAdd(const AbstractOp &VAdd, const AIEBaseInstrInfo *TII,
MachineRegisterInfo &MRI, SmallPtrSet<const Value *, 4> &GVSet) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would that function be equivalent to something like:

bool visitAddressVector(const AbstractOp &Op, const AIEBaseInstrInfo *TII,
               MachineRegisterInfo &MRI, SmallPtrSet<const Value *, 4> &GVSet) {
  if (Op.Type == Operation::VECTOR_SELECT)
    return visitSelect(...);
  if (Op.Type != Operation::VECTOR_ADD)
    return false;

  return any_of(Op.VectorSrcRegs, [&](Register SrcReg) {
    OptionalOp VOp = TII->parseAbstractOp(*MRI.getVRegDef(Reg));
    return !VOp || visitAddressVector(*VOp, TII, MRI, GVSet);
  };
}

@andcarminati andcarminati force-pushed the andreu.fix.memop branch 2 times, most recently from 91ef063 to 460287b Compare October 28, 2024 10:37

return any_of(VOp.VectorSrcRegs, [&](Register SrcReg) {
OptionalOp VOp = TII->parseAbstractOp(*MRI.getVRegDef(SrcReg));
return !VOp || visitAddressVector(*VOp, TII, MRI, GVSet);
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 I made a mistake when suggesting that cod. That should probably be VOp && visitAddressVector(*VOp, TII, MRI, GVSet). I.e. we are fine as long as one of the source registers could be successfully traced to an address vector. What do you think?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If one can be traced back, we are fine! I will update.

This can prevent MachinePipeliner from considering some loads
as barriers (isDependenceBarrier).
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, thanks for looking into all the comments :)

@andcarminati andcarminati merged commit e7e878c into aie-public Oct 28, 2024
8 checks passed
@andcarminati andcarminati deleted the andreu.fix.memop branch October 28, 2024 14:45
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.

3 participants