/**
 * \file dnn/src/x86/profile.cpp
 * MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
 *
 * Copyright (c) 2014-2020 Megvii Inc. All rights reserved.
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 */
#include "src/x86/profile.h"

namespace megdnn {
namespace x86 {

ProfileCache get_profile_cache()
{
    ProfileCache vec;
    vec.clear();
    vec.reserve(294);
    vec.push_back(ProfileElement(2, 4, 4, 49));
    vec.push_back(ProfileElement(2, 4, 8, 25));
    vec.push_back(ProfileElement(2, 4, 16, 19));
    vec.push_back(ProfileElement(2, 4, 32, 14));
    vec.push_back(ProfileElement(2, 4, 64, 13));
    vec.push_back(ProfileElement(2, 4, 96, 15));
    vec.push_back(ProfileElement(2, 4, 128, 15));
    vec.push_back(ProfileElement(2, 8, 4, 241));
    vec.push_back(ProfileElement(2, 8, 8, 121));
    vec.push_back(ProfileElement(2, 8, 16, 57));
    vec.push_back(ProfileElement(2, 8, 32, 29));
    vec.push_back(ProfileElement(2, 8, 64, 17));
    vec.push_back(ProfileElement(2, 8, 96, 39));
    vec.push_back(ProfileElement(2, 8, 128, 29));
    vec.push_back(ProfileElement(2, 16, 4, 1000000000));
    vec.push_back(ProfileElement(2, 16, 8, 273));
    vec.push_back(ProfileElement(2, 16, 16, 177));
    vec.push_back(ProfileElement(2, 16, 32, 137));
    vec.push_back(ProfileElement(2, 16, 64, 1000000000));
    vec.push_back(ProfileElement(2, 16, 96, 1000000000));
    vec.push_back(ProfileElement(2, 16, 128, 1000000000));
    vec.push_back(ProfileElement(2, 32, 4, 1000000000));
    vec.push_back(ProfileElement(2, 32, 8, 1000000000));
    vec.push_back(ProfileElement(2, 32, 16, 1000000000));
    vec.push_back(ProfileElement(2, 32, 32, 1000000000));
    vec.push_back(ProfileElement(2, 32, 64, 1000000000));
    vec.push_back(ProfileElement(2, 32, 96, 1000000000));
    vec.push_back(ProfileElement(2, 32, 128, 1000000000));
    vec.push_back(ProfileElement(2, 64, 4, 1000000000));
    vec.push_back(ProfileElement(2, 64, 8, 1000000000));
    vec.push_back(ProfileElement(2, 64, 16, 1000000000));
    vec.push_back(ProfileElement(2, 64, 32, 1000000000));
    vec.push_back(ProfileElement(2, 64, 64, 1000000000));
    vec.push_back(ProfileElement(2, 64, 96, 1000000000));
    vec.push_back(ProfileElement(2, 64, 128, 1000000000));
    vec.push_back(ProfileElement(2, 96, 4, 1000000000));
    vec.push_back(ProfileElement(2, 96, 8, 1000000000));
    vec.push_back(ProfileElement(2, 96, 16, 1000000000));
    vec.push_back(ProfileElement(2, 96, 32, 1000000000));
    vec.push_back(ProfileElement(2, 96, 64, 1000000000));
    vec.push_back(ProfileElement(2, 96, 96, 1000000000));
    vec.push_back(ProfileElement(2, 96, 128, 1000000000));
    vec.push_back(ProfileElement(2, 128, 4, 1000000000));
    vec.push_back(ProfileElement(2, 128, 8, 1000000000));
    vec.push_back(ProfileElement(2, 128, 16, 1000000000));
    vec.push_back(ProfileElement(2, 128, 32, 1000000000));
    vec.push_back(ProfileElement(2, 128, 64, 1000000000));
    vec.push_back(ProfileElement(2, 128, 96, 1000000000));
    vec.push_back(ProfileElement(2, 128, 128, 1000000000));
    vec.push_back(ProfileElement(3, 4, 4, 10));
    vec.push_back(ProfileElement(3, 4, 8, 5));
    vec.push_back(ProfileElement(3, 4, 16, 7));
    vec.push_back(ProfileElement(3, 4, 32, 7));
    vec.push_back(ProfileElement(3, 4, 64, 6));
    vec.push_back(ProfileElement(3, 4, 96, 5));
    vec.push_back(ProfileElement(3, 4, 128, 5));
    vec.push_back(ProfileElement(3, 8, 4, 14));
    vec.push_back(ProfileElement(3, 8, 8, 13));
    vec.push_back(ProfileElement(3, 8, 16, 13));
    vec.push_back(ProfileElement(3, 8, 32, 13));
    vec.push_back(ProfileElement(3, 8, 64, 11));
    vec.push_back(ProfileElement(3, 8, 96, 11));
    vec.push_back(ProfileElement(3, 8, 128, 12));
    vec.push_back(ProfileElement(3, 16, 4, 37));
    vec.push_back(ProfileElement(3, 16, 8, 29));
    vec.push_back(ProfileElement(3, 16, 16, 21));
    vec.push_back(ProfileElement(3, 16, 32, 19));
    vec.push_back(ProfileElement(3, 16, 64, 14));
    vec.push_back(ProfileElement(3, 16, 96, 13));
    vec.push_back(ProfileElement(3, 16, 128, 13));
    vec.push_back(ProfileElement(3, 32, 4, 69));
    vec.push_back(ProfileElement(3, 32, 8, 105));
    vec.push_back(ProfileElement(3, 32, 16, 105));
    vec.push_back(ProfileElement(3, 32, 32, 49));
    vec.push_back(ProfileElement(3, 32, 64, 29));
    vec.push_back(ProfileElement(3, 32, 96, 27));
    vec.push_back(ProfileElement(3, 32, 128, 39));
    vec.push_back(ProfileElement(3, 64, 4, 193));
    vec.push_back(ProfileElement(3, 64, 8, 161));
    vec.push_back(ProfileElement(3, 64, 16, 137));
    vec.push_back(ProfileElement(3, 64, 32, 113));
    vec.push_back(ProfileElement(3, 64, 64, 1000000000));
    vec.push_back(ProfileElement(3, 64, 96, 1000000000));
    vec.push_back(ProfileElement(3, 64, 128, 1000000000));
    vec.push_back(ProfileElement(3, 96, 4, 1000000000));
    vec.push_back(ProfileElement(3, 96, 8, 305));
    vec.push_back(ProfileElement(3, 96, 16, 1000000000));
    vec.push_back(ProfileElement(3, 96, 32, 1000000000));
    vec.push_back(ProfileElement(3, 96, 64, 1000000000));
    vec.push_back(ProfileElement(3, 96, 96, 1000000000));
    vec.push_back(ProfileElement(3, 96, 128, 1000000000));
    vec.push_back(ProfileElement(3, 128, 4, 1000000000));
    vec.push_back(ProfileElement(3, 128, 8, 1000000000));
    vec.push_back(ProfileElement(3, 128, 16, 1000000000));
    vec.push_back(ProfileElement(3, 128, 32, 1000000000));
    vec.push_back(ProfileElement(3, 128, 64, 1000000000));
    vec.push_back(ProfileElement(3, 128, 96, 1000000000));
    vec.push_back(ProfileElement(3, 128, 128, 1000000000));
    vec.push_back(ProfileElement(4, 4, 4, 7));
    vec.push_back(ProfileElement(4, 4, 8, 7));
    vec.push_back(ProfileElement(4, 4, 16, 5));
    vec.push_back(ProfileElement(4, 4, 32, 6));
    vec.push_back(ProfileElement(4, 4, 64, 5));
    vec.push_back(ProfileElement(4, 4, 96, 5));
    vec.push_back(ProfileElement(4, 4, 128, 5));
    vec.push_back(ProfileElement(4, 8, 4, 14));
    vec.push_back(ProfileElement(4, 8, 8, 12));
    vec.push_back(ProfileElement(4, 8, 16, 5));
    vec.push_back(ProfileElement(4, 8, 32, 6));
    vec.push_back(ProfileElement(4, 8, 64, 6));
    vec.push_back(ProfileElement(4, 8, 96, 6));
    vec.push_back(ProfileElement(4, 8, 128, 5));
    vec.push_back(ProfileElement(4, 16, 4, 14));
    vec.push_back(ProfileElement(4, 16, 8, 14));
    vec.push_back(ProfileElement(4, 16, 16, 13));
    vec.push_back(ProfileElement(4, 16, 32, 13));
    vec.push_back(ProfileElement(4, 16, 64, 13));
    vec.push_back(ProfileElement(4, 16, 96, 13));
    vec.push_back(ProfileElement(4, 16, 128, 13));
    vec.push_back(ProfileElement(4, 32, 4, 37));
    vec.push_back(ProfileElement(4, 32, 8, 31));
    vec.push_back(ProfileElement(4, 32, 16, 29));
    vec.push_back(ProfileElement(4, 32, 32, 21));
    vec.push_back(ProfileElement(4, 32, 64, 21));
    vec.push_back(ProfileElement(4, 32, 96, 29));
    vec.push_back(ProfileElement(4, 32, 128, 21));
    vec.push_back(ProfileElement(4, 64, 4, 137));
    vec.push_back(ProfileElement(4, 64, 8, 113));
    vec.push_back(ProfileElement(4, 64, 16, 89));
    vec.push_back(ProfileElement(4, 64, 32, 69));
    vec.push_back(ProfileElement(4, 64, 64, 45));
    vec.push_back(ProfileElement(4, 64, 96, 37));
    vec.push_back(ProfileElement(4, 64, 128, 35));
    vec.push_back(ProfileElement(4, 96, 4, 137));
    vec.push_back(ProfileElement(4, 96, 8, 113));
    vec.push_back(ProfileElement(4, 96, 16, 105));
    vec.push_back(ProfileElement(4, 96, 32, 77));
    vec.push_back(ProfileElement(4, 96, 64, 53));
    vec.push_back(ProfileElement(4, 96, 96, 45));
    vec.push_back(ProfileElement(4, 96, 128, 39));
    vec.push_back(ProfileElement(4, 128, 4, 137));
    vec.push_back(ProfileElement(4, 128, 8, 121));
    vec.push_back(ProfileElement(4, 128, 16, 153));
    vec.push_back(ProfileElement(4, 128, 32, 97));
    vec.push_back(ProfileElement(4, 128, 64, 1000000000));
    vec.push_back(ProfileElement(4, 128, 96, 1000000000));
    vec.push_back(ProfileElement(4, 128, 128, 1000000000));
    vec.push_back(ProfileElement(5, 4, 4, 8));
    vec.push_back(ProfileElement(5, 4, 8, 9));
    vec.push_back(ProfileElement(5, 4, 16, 5));
    vec.push_back(ProfileElement(5, 4, 32, 5));
    vec.push_back(ProfileElement(5, 4, 64, 5));
    vec.push_back(ProfileElement(5, 4, 96, 5));
    vec.push_back(ProfileElement(5, 4, 128, 5));
    vec.push_back(ProfileElement(5, 8, 4, 7));
    vec.push_back(ProfileElement(5, 8, 8, 6));
    vec.push_back(ProfileElement(5, 8, 16, 5));
    vec.push_back(ProfileElement(5, 8, 32, 5));
    vec.push_back(ProfileElement(5, 8, 64, 5));
    vec.push_back(ProfileElement(5, 8, 96, 5));
    vec.push_back(ProfileElement(5, 8, 128, 5));
    vec.push_back(ProfileElement(5, 16, 4, 21));
    vec.push_back(ProfileElement(5, 16, 8, 12));
    vec.push_back(ProfileElement(5, 16, 16, 12));
    vec.push_back(ProfileElement(5, 16, 32, 11));
    vec.push_back(ProfileElement(5, 16, 64, 11));
    vec.push_back(ProfileElement(5, 16, 96, 11));
    vec.push_back(ProfileElement(5, 16, 128, 11));
    vec.push_back(ProfileElement(5, 32, 4, 23));
    vec.push_back(ProfileElement(5, 32, 8, 14));
    vec.push_back(ProfileElement(5, 32, 16, 14));
    vec.push_back(ProfileElement(5, 32, 32, 13));
    vec.push_back(ProfileElement(5, 32, 64, 13));
    vec.push_back(ProfileElement(5, 32, 96, 13));
    vec.push_back(ProfileElement(5, 32, 128, 13));
    vec.push_back(ProfileElement(5, 64, 4, 77));
    vec.push_back(ProfileElement(5, 64, 8, 39));
    vec.push_back(ProfileElement(5, 64, 16, 37));
    vec.push_back(ProfileElement(5, 64, 32, 29));
    vec.push_back(ProfileElement(5, 64, 64, 29));
    vec.push_back(ProfileElement(5, 64, 96, 21));
    vec.push_back(ProfileElement(5, 64, 128, 21));
    vec.push_back(ProfileElement(5, 96, 4, 113));
    vec.push_back(ProfileElement(5, 96, 8, 77));
    vec.push_back(ProfileElement(5, 96, 16, 61));
    vec.push_back(ProfileElement(5, 96, 32, 39));
    vec.push_back(ProfileElement(5, 96, 64, 37));
    vec.push_back(ProfileElement(5, 96, 96, 31));
    vec.push_back(ProfileElement(5, 96, 128, 29));
    vec.push_back(ProfileElement(5, 128, 4, 113));
    vec.push_back(ProfileElement(5, 128, 8, 97));
    vec.push_back(ProfileElement(5, 128, 16, 69));
    vec.push_back(ProfileElement(5, 128, 32, 53));
    vec.push_back(ProfileElement(5, 128, 64, 39));
    vec.push_back(ProfileElement(5, 128, 96, 31));
    vec.push_back(ProfileElement(5, 128, 128, 31));
    vec.push_back(ProfileElement(6, 4, 4, 7));
    vec.push_back(ProfileElement(6, 4, 8, 3));
    vec.push_back(ProfileElement(6, 4, 16, 5));
    vec.push_back(ProfileElement(6, 4, 32, 4));
    vec.push_back(ProfileElement(6, 4, 64, 5));
    vec.push_back(ProfileElement(6, 4, 96, 4));
    vec.push_back(ProfileElement(6, 4, 128, 4));
    vec.push_back(ProfileElement(6, 8, 4, 11));
    vec.push_back(ProfileElement(6, 8, 8, 5));
    vec.push_back(ProfileElement(6, 8, 16, 5));
    vec.push_back(ProfileElement(6, 8, 32, 5));
    vec.push_back(ProfileElement(6, 8, 64, 5));
    vec.push_back(ProfileElement(6, 8, 96, 5));
    vec.push_back(ProfileElement(6, 8, 128, 5));
    vec.push_back(ProfileElement(6, 16, 4, 13));
    vec.push_back(ProfileElement(6, 16, 8, 11));
    vec.push_back(ProfileElement(6, 16, 16, 11));
    vec.push_back(ProfileElement(6, 16, 32, 5));
    vec.push_back(ProfileElement(6, 16, 64, 5));
    vec.push_back(ProfileElement(6, 16, 96, 5));
    vec.push_back(ProfileElement(6, 16, 128, 11));
    vec.push_back(ProfileElement(6, 32, 4, 21));
    vec.push_back(ProfileElement(6, 32, 8, 14));
    vec.push_back(ProfileElement(6, 32, 16, 13));
    vec.push_back(ProfileElement(6, 32, 32, 13));
    vec.push_back(ProfileElement(6, 32, 64, 13));
    vec.push_back(ProfileElement(6, 32, 96, 13));
    vec.push_back(ProfileElement(6, 32, 128, 13));
    vec.push_back(ProfileElement(6, 64, 4, 39));
    vec.push_back(ProfileElement(6, 64, 8, 29));
    vec.push_back(ProfileElement(6, 64, 16, 29));
    vec.push_back(ProfileElement(6, 64, 32, 21));
    vec.push_back(ProfileElement(6, 64, 64, 21));
    vec.push_back(ProfileElement(6, 64, 96, 21));
    vec.push_back(ProfileElement(6, 64, 128, 21));
    vec.push_back(ProfileElement(6, 96, 4, 97));
    vec.push_back(ProfileElement(6, 96, 8, 61));
    vec.push_back(ProfileElement(6, 96, 16, 39));
    vec.push_back(ProfileElement(6, 96, 32, 37));
    vec.push_back(ProfileElement(6, 96, 64, 29));
    vec.push_back(ProfileElement(6, 96, 96, 29));
    vec.push_back(ProfileElement(6, 96, 128, 21));
    vec.push_back(ProfileElement(6, 128, 4, 77));
    vec.push_back(ProfileElement(6, 128, 8, 61));
    vec.push_back(ProfileElement(6, 128, 16, 39));
    vec.push_back(ProfileElement(6, 128, 32, 37));
    vec.push_back(ProfileElement(6, 128, 64, 29));
    vec.push_back(ProfileElement(6, 128, 96, 29));
    vec.push_back(ProfileElement(6, 128, 128, 23));
    vec.push_back(ProfileElement(7, 4, 4, 5));
    vec.push_back(ProfileElement(7, 4, 8, 4));
    vec.push_back(ProfileElement(7, 4, 16, 4));
    vec.push_back(ProfileElement(7, 4, 32, 4));
    vec.push_back(ProfileElement(7, 4, 64, 4));
    vec.push_back(ProfileElement(7, 4, 96, 4));
    vec.push_back(ProfileElement(7, 4, 128, 3));
    vec.push_back(ProfileElement(7, 8, 4, 5));
    vec.push_back(ProfileElement(7, 8, 8, 5));
    vec.push_back(ProfileElement(7, 8, 16, 5));
    vec.push_back(ProfileElement(7, 8, 32, 5));
    vec.push_back(ProfileElement(7, 8, 64, 5));
    vec.push_back(ProfileElement(7, 8, 96, 5));
    vec.push_back(ProfileElement(7, 8, 128, 5));
    vec.push_back(ProfileElement(7, 16, 4, 13));
    vec.push_back(ProfileElement(7, 16, 8, 11));
    vec.push_back(ProfileElement(7, 16, 16, 5));
    vec.push_back(ProfileElement(7, 16, 32, 5));
    vec.push_back(ProfileElement(7, 16, 64, 5));
    vec.push_back(ProfileElement(7, 16, 96, 5));
    vec.push_back(ProfileElement(7, 16, 128, 5));
    vec.push_back(ProfileElement(7, 32, 4, 21));
    vec.push_back(ProfileElement(7, 32, 8, 13));
    vec.push_back(ProfileElement(7, 32, 16, 13));
    vec.push_back(ProfileElement(7, 32, 32, 13));
    vec.push_back(ProfileElement(7, 32, 64, 13));
    vec.push_back(ProfileElement(7, 32, 96, 13));
    vec.push_back(ProfileElement(7, 32, 128, 12));
    vec.push_back(ProfileElement(7, 64, 4, 37));
    vec.push_back(ProfileElement(7, 64, 8, 21));
    vec.push_back(ProfileElement(7, 64, 16, 14));
    vec.push_back(ProfileElement(7, 64, 32, 14));
    vec.push_back(ProfileElement(7, 64, 64, 14));
    vec.push_back(ProfileElement(7, 64, 96, 13));
    vec.push_back(ProfileElement(7, 64, 128, 14));
    vec.push_back(ProfileElement(7, 96, 4, 61));
    vec.push_back(ProfileElement(7, 96, 8, 39));
    vec.push_back(ProfileElement(7, 96, 16, 37));
    vec.push_back(ProfileElement(7, 96, 32, 31));
    vec.push_back(ProfileElement(7, 96, 64, 21));
    vec.push_back(ProfileElement(7, 96, 96, 21));
    vec.push_back(ProfileElement(7, 96, 128, 21));
    vec.push_back(ProfileElement(7, 128, 4, 61));
    vec.push_back(ProfileElement(7, 128, 8, 31));
    vec.push_back(ProfileElement(7, 128, 16, 37));
    vec.push_back(ProfileElement(7, 128, 32, 11));
    vec.push_back(ProfileElement(7, 128, 64, 13));
    vec.push_back(ProfileElement(7, 128, 96, 23));
    vec.push_back(ProfileElement(7, 128, 128, 21));
    return vec;
}

} // namespace fallback
} // namespace megdnn

// vim: syntax=cpp.doxygen



