// Copyright 2015, VIXL authors
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
//   * Redistributions of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//   * Redistributions in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//   * Neither the name of ARM Limited nor the names of its contributors may be
//     used to endorse or promote products derived from this software without
//     specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


// ---------------------------------------------------------------------
// This file is auto generated using tools/generate_simulator_traces.py.
//
// PLEASE DO NOT EDIT.
// ---------------------------------------------------------------------

#ifndef VIXL_ASSEMBLER_COND_DT_DRT_DRD_DRN_DRM_FLOAT_NOT_F16_VADD_T32_H_
#define VIXL_ASSEMBLER_COND_DT_DRT_DRD_DRN_DRM_FLOAT_NOT_F16_VADD_T32_H_

const byte kInstruction_vadd_F64_d16_d17_d14[] = {
  0x71, 0xee, 0x8e, 0x0b // vadd F64 d16 d17 d14
};
const byte kInstruction_vadd_F64_d21_d29_d16[] = {
  0x7d, 0xee, 0xa0, 0x5b // vadd F64 d21 d29 d16
};
const byte kInstruction_vadd_F64_d19_d28_d12[] = {
  0x7c, 0xee, 0x8c, 0x3b // vadd F64 d19 d28 d12
};
const byte kInstruction_vadd_F32_d5_d16_d12[] = {
  0x00, 0xef, 0x8c, 0x5d // vadd F32 d5 d16 d12
};
const byte kInstruction_vadd_F64_d31_d7_d1[] = {
  0x77, 0xee, 0x01, 0xfb // vadd F64 d31 d7 d1
};
const byte kInstruction_vadd_F64_d22_d6_d1[] = {
  0x76, 0xee, 0x01, 0x6b // vadd F64 d22 d6 d1
};
const byte kInstruction_vadd_F32_d22_d28_d12[] = {
  0x4c, 0xef, 0x8c, 0x6d // vadd F32 d22 d28 d12
};
const byte kInstruction_vadd_F32_d15_d1_d6[] = {
  0x01, 0xef, 0x06, 0xfd // vadd F32 d15 d1 d6
};
const byte kInstruction_vadd_F32_d18_d17_d23[] = {
  0x41, 0xef, 0xa7, 0x2d // vadd F32 d18 d17 d23
};
const byte kInstruction_vadd_F64_d29_d21_d18[] = {
  0x75, 0xee, 0xa2, 0xdb // vadd F64 d29 d21 d18
};
const byte kInstruction_vadd_F64_d28_d29_d29[] = {
  0x7d, 0xee, 0xad, 0xcb // vadd F64 d28 d29 d29
};
const byte kInstruction_vadd_F64_d26_d28_d26[] = {
  0x7c, 0xee, 0xaa, 0xab // vadd F64 d26 d28 d26
};
const byte kInstruction_vadd_F64_d2_d18_d10[] = {
  0x32, 0xee, 0x8a, 0x2b // vadd F64 d2 d18 d10
};
const byte kInstruction_vadd_F64_d4_d30_d6[] = {
  0x3e, 0xee, 0x86, 0x4b // vadd F64 d4 d30 d6
};
const byte kInstruction_vadd_F64_d11_d25_d14[] = {
  0x39, 0xee, 0x8e, 0xbb // vadd F64 d11 d25 d14
};
const byte kInstruction_vadd_F32_d4_d26_d15[] = {
  0x0a, 0xef, 0x8f, 0x4d // vadd F32 d4 d26 d15
};
const byte kInstruction_vadd_F64_d9_d20_d30[] = {
  0x34, 0xee, 0xae, 0x9b // vadd F64 d9 d20 d30
};
const byte kInstruction_vadd_F64_d18_d12_d20[] = {
  0x7c, 0xee, 0x24, 0x2b // vadd F64 d18 d12 d20
};
const byte kInstruction_vadd_F64_d1_d27_d15[] = {
  0x3b, 0xee, 0x8f, 0x1b // vadd F64 d1 d27 d15
};
const byte kInstruction_vadd_F32_d22_d22_d3[] = {
  0x46, 0xef, 0x83, 0x6d // vadd F32 d22 d22 d3
};
const byte kInstruction_vadd_F32_d29_d19_d6[] = {
  0x43, 0xef, 0x86, 0xdd // vadd F32 d29 d19 d6
};
const byte kInstruction_vadd_F64_d9_d23_d8[] = {
  0x37, 0xee, 0x88, 0x9b // vadd F64 d9 d23 d8
};
const byte kInstruction_vadd_F32_d12_d18_d29[] = {
  0x02, 0xef, 0xad, 0xcd // vadd F32 d12 d18 d29
};
const byte kInstruction_vadd_F64_d0_d12_d13[] = {
  0x3c, 0xee, 0x0d, 0x0b // vadd F64 d0 d12 d13
};
const byte kInstruction_vadd_F64_d9_d17_d17[] = {
  0x31, 0xee, 0xa1, 0x9b // vadd F64 d9 d17 d17
};
const byte kInstruction_vadd_F64_d11_d0_d29[] = {
  0x30, 0xee, 0x2d, 0xbb // vadd F64 d11 d0 d29
};
const byte kInstruction_vadd_F64_d24_d16_d28[] = {
  0x70, 0xee, 0xac, 0x8b // vadd F64 d24 d16 d28
};
const byte kInstruction_vadd_F64_d22_d14_d26[] = {
  0x7e, 0xee, 0x2a, 0x6b // vadd F64 d22 d14 d26
};
const byte kInstruction_vadd_F64_d11_d14_d22[] = {
  0x3e, 0xee, 0x26, 0xbb // vadd F64 d11 d14 d22
};
const byte kInstruction_vadd_F64_d19_d12_d6[] = {
  0x7c, 0xee, 0x06, 0x3b // vadd F64 d19 d12 d6
};
const byte kInstruction_vadd_F64_d29_d3_d28[] = {
  0x73, 0xee, 0x2c, 0xdb // vadd F64 d29 d3 d28
};
const byte kInstruction_vadd_F64_d21_d8_d3[] = {
  0x78, 0xee, 0x03, 0x5b // vadd F64 d21 d8 d3
};
const byte kInstruction_vadd_F32_d1_d15_d25[] = {
  0x0f, 0xef, 0x29, 0x1d // vadd F32 d1 d15 d25
};
const byte kInstruction_vadd_F64_d22_d8_d8[] = {
  0x78, 0xee, 0x08, 0x6b // vadd F64 d22 d8 d8
};
const byte kInstruction_vadd_F64_d29_d23_d10[] = {
  0x77, 0xee, 0x8a, 0xdb // vadd F64 d29 d23 d10
};
const byte kInstruction_vadd_F32_d3_d16_d8[] = {
  0x00, 0xef, 0x88, 0x3d // vadd F32 d3 d16 d8
};
const byte kInstruction_vadd_F32_d1_d0_d13[] = {
  0x00, 0xef, 0x0d, 0x1d // vadd F32 d1 d0 d13
};
const byte kInstruction_vadd_F64_d11_d11_d4[] = {
  0x3b, 0xee, 0x04, 0xbb // vadd F64 d11 d11 d4
};
const byte kInstruction_vadd_F64_d10_d22_d24[] = {
  0x36, 0xee, 0xa8, 0xab // vadd F64 d10 d22 d24
};
const byte kInstruction_vadd_F64_d16_d22_d3[] = {
  0x76, 0xee, 0x83, 0x0b // vadd F64 d16 d22 d3
};
const byte kInstruction_vadd_F64_d1_d22_d17[] = {
  0x36, 0xee, 0xa1, 0x1b // vadd F64 d1 d22 d17
};
const byte kInstruction_vadd_F32_d5_d26_d24[] = {
  0x0a, 0xef, 0xa8, 0x5d // vadd F32 d5 d26 d24
};
const byte kInstruction_vadd_F64_d17_d1_d18[] = {
  0x71, 0xee, 0x22, 0x1b // vadd F64 d17 d1 d18
};
const byte kInstruction_vadd_F32_d19_d15_d0[] = {
  0x4f, 0xef, 0x00, 0x3d // vadd F32 d19 d15 d0
};
const byte kInstruction_vadd_F32_d22_d3_d3[] = {
  0x43, 0xef, 0x03, 0x6d // vadd F32 d22 d3 d3
};
const byte kInstruction_vadd_F32_d30_d16_d4[] = {
  0x40, 0xef, 0x84, 0xed // vadd F32 d30 d16 d4
};
const byte kInstruction_vadd_F64_d31_d28_d16[] = {
  0x7c, 0xee, 0xa0, 0xfb // vadd F64 d31 d28 d16
};
const byte kInstruction_vadd_F64_d9_d9_d26[] = {
  0x39, 0xee, 0x2a, 0x9b // vadd F64 d9 d9 d26
};
const byte kInstruction_vadd_F32_d18_d12_d5[] = {
  0x4c, 0xef, 0x05, 0x2d // vadd F32 d18 d12 d5
};
const byte kInstruction_vadd_F64_d1_d1_d14[] = {
  0x31, 0xee, 0x0e, 0x1b // vadd F64 d1 d1 d14
};
const byte kInstruction_vadd_F64_d10_d26_d27[] = {
  0x3a, 0xee, 0xab, 0xab // vadd F64 d10 d26 d27
};
const byte kInstruction_vadd_F32_d4_d24_d28[] = {
  0x08, 0xef, 0xac, 0x4d // vadd F32 d4 d24 d28
};
const byte kInstruction_vadd_F64_d5_d17_d1[] = {
  0x31, 0xee, 0x81, 0x5b // vadd F64 d5 d17 d1
};
const byte kInstruction_vadd_F64_d20_d4_d8[] = {
  0x74, 0xee, 0x08, 0x4b // vadd F64 d20 d4 d8
};
const byte kInstruction_vadd_F32_d14_d5_d27[] = {
  0x05, 0xef, 0x2b, 0xed // vadd F32 d14 d5 d27
};
const byte kInstruction_vadd_F32_d19_d26_d13[] = {
  0x4a, 0xef, 0x8d, 0x3d // vadd F32 d19 d26 d13
};
const byte kInstruction_vadd_F64_d26_d6_d19[] = {
  0x76, 0xee, 0x23, 0xab // vadd F64 d26 d6 d19
};
const byte kInstruction_vadd_F64_d5_d26_d31[] = {
  0x3a, 0xee, 0xaf, 0x5b // vadd F64 d5 d26 d31
};
const byte kInstruction_vadd_F64_d7_d26_d7[] = {
  0x3a, 0xee, 0x87, 0x7b // vadd F64 d7 d26 d7
};
const byte kInstruction_vadd_F32_d14_d10_d17[] = {
  0x0a, 0xef, 0x21, 0xed // vadd F32 d14 d10 d17
};
const byte kInstruction_vadd_F32_d4_d16_d30[] = {
  0x00, 0xef, 0xae, 0x4d // vadd F32 d4 d16 d30
};
const byte kInstruction_vadd_F64_d10_d12_d2[] = {
  0x3c, 0xee, 0x02, 0xab // vadd F64 d10 d12 d2
};
const byte kInstruction_vadd_F32_d15_d17_d10[] = {
  0x01, 0xef, 0x8a, 0xfd // vadd F32 d15 d17 d10
};
const byte kInstruction_vadd_F64_d20_d25_d20[] = {
  0x79, 0xee, 0xa4, 0x4b // vadd F64 d20 d25 d20
};
const byte kInstruction_vadd_F32_d12_d21_d28[] = {
  0x05, 0xef, 0xac, 0xcd // vadd F32 d12 d21 d28
};
const byte kInstruction_vadd_F64_d20_d23_d16[] = {
  0x77, 0xee, 0xa0, 0x4b // vadd F64 d20 d23 d16
};
const byte kInstruction_vadd_F64_d11_d19_d18[] = {
  0x33, 0xee, 0xa2, 0xbb // vadd F64 d11 d19 d18
};
const byte kInstruction_vadd_F64_d3_d6_d7[] = {
  0x36, 0xee, 0x07, 0x3b // vadd F64 d3 d6 d7
};
const byte kInstruction_vadd_F32_d23_d20_d7[] = {
  0x44, 0xef, 0x87, 0x7d // vadd F32 d23 d20 d7
};
const byte kInstruction_vadd_F32_d3_d16_d19[] = {
  0x00, 0xef, 0xa3, 0x3d // vadd F32 d3 d16 d19
};
const byte kInstruction_vadd_F64_d2_d17_d31[] = {
  0x31, 0xee, 0xaf, 0x2b // vadd F64 d2 d17 d31
};
const byte kInstruction_vadd_F64_d10_d30_d23[] = {
  0x3e, 0xee, 0xa7, 0xab // vadd F64 d10 d30 d23
};
const byte kInstruction_vadd_F64_d27_d11_d2[] = {
  0x7b, 0xee, 0x02, 0xbb // vadd F64 d27 d11 d2
};
const byte kInstruction_vadd_F64_d19_d10_d19[] = {
  0x7a, 0xee, 0x23, 0x3b // vadd F64 d19 d10 d19
};
const byte kInstruction_vadd_F64_d16_d4_d15[] = {
  0x74, 0xee, 0x0f, 0x0b // vadd F64 d16 d4 d15
};
const byte kInstruction_vadd_F32_d8_d28_d1[] = {
  0x0c, 0xef, 0x81, 0x8d // vadd F32 d8 d28 d1
};
const byte kInstruction_vadd_F32_d13_d31_d5[] = {
  0x0f, 0xef, 0x85, 0xdd // vadd F32 d13 d31 d5
};
const byte kInstruction_vadd_F64_d17_d13_d29[] = {
  0x7d, 0xee, 0x2d, 0x1b // vadd F64 d17 d13 d29
};
const byte kInstruction_vadd_F32_d27_d19_d10[] = {
  0x43, 0xef, 0x8a, 0xbd // vadd F32 d27 d19 d10
};
const byte kInstruction_vadd_F64_d8_d4_d0[] = {
  0x34, 0xee, 0x00, 0x8b // vadd F64 d8 d4 d0
};
const byte kInstruction_vadd_F64_d31_d1_d29[] = {
  0x71, 0xee, 0x2d, 0xfb // vadd F64 d31 d1 d29
};
const byte kInstruction_vadd_F64_d6_d2_d12[] = {
  0x32, 0xee, 0x0c, 0x6b // vadd F64 d6 d2 d12
};
const byte kInstruction_vadd_F64_d25_d23_d24[] = {
  0x77, 0xee, 0xa8, 0x9b // vadd F64 d25 d23 d24
};
const byte kInstruction_vadd_F64_d3_d12_d1[] = {
  0x3c, 0xee, 0x01, 0x3b // vadd F64 d3 d12 d1
};
const byte kInstruction_vadd_F64_d24_d18_d16[] = {
  0x72, 0xee, 0xa0, 0x8b // vadd F64 d24 d18 d16
};
const byte kInstruction_vadd_F32_d13_d21_d16[] = {
  0x05, 0xef, 0xa0, 0xdd // vadd F32 d13 d21 d16
};
const byte kInstruction_vadd_F32_d9_d6_d23[] = {
  0x06, 0xef, 0x27, 0x9d // vadd F32 d9 d6 d23
};
const byte kInstruction_vadd_F64_d14_d14_d13[] = {
  0x3e, 0xee, 0x0d, 0xeb // vadd F64 d14 d14 d13
};
const byte kInstruction_vadd_F32_d25_d23_d17[] = {
  0x47, 0xef, 0xa1, 0x9d // vadd F32 d25 d23 d17
};
const byte kInstruction_vadd_F64_d13_d25_d3[] = {
  0x39, 0xee, 0x83, 0xdb // vadd F64 d13 d25 d3
};
const byte kInstruction_vadd_F64_d9_d11_d8[] = {
  0x3b, 0xee, 0x08, 0x9b // vadd F64 d9 d11 d8
};
const byte kInstruction_vadd_F32_d18_d13_d26[] = {
  0x4d, 0xef, 0x2a, 0x2d // vadd F32 d18 d13 d26
};
const byte kInstruction_vadd_F64_d16_d14_d15[] = {
  0x7e, 0xee, 0x0f, 0x0b // vadd F64 d16 d14 d15
};
const byte kInstruction_vadd_F32_d5_d30_d13[] = {
  0x0e, 0xef, 0x8d, 0x5d // vadd F32 d5 d30 d13
};
const byte kInstruction_vadd_F32_d4_d21_d14[] = {
  0x05, 0xef, 0x8e, 0x4d // vadd F32 d4 d21 d14
};
const byte kInstruction_vadd_F32_d7_d4_d5[] = {
  0x04, 0xef, 0x05, 0x7d // vadd F32 d7 d4 d5
};
const byte kInstruction_vadd_F64_d2_d23_d13[] = {
  0x37, 0xee, 0x8d, 0x2b // vadd F64 d2 d23 d13
};
const byte kInstruction_vadd_F32_d16_d30_d23[] = {
  0x4e, 0xef, 0xa7, 0x0d // vadd F32 d16 d30 d23
};
const byte kInstruction_vadd_F32_d18_d15_d28[] = {
  0x4f, 0xef, 0x2c, 0x2d // vadd F32 d18 d15 d28
};
const byte kInstruction_vadd_F32_d6_d31_d23[] = {
  0x0f, 0xef, 0xa7, 0x6d // vadd F32 d6 d31 d23
};
const TestResult kReferencevadd[] = {
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d16_d17_d14),
    kInstruction_vadd_F64_d16_d17_d14,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d21_d29_d16),
    kInstruction_vadd_F64_d21_d29_d16,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d19_d28_d12),
    kInstruction_vadd_F64_d19_d28_d12,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d5_d16_d12),
    kInstruction_vadd_F32_d5_d16_d12,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d31_d7_d1),
    kInstruction_vadd_F64_d31_d7_d1,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d22_d6_d1),
    kInstruction_vadd_F64_d22_d6_d1,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d22_d28_d12),
    kInstruction_vadd_F32_d22_d28_d12,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d15_d1_d6),
    kInstruction_vadd_F32_d15_d1_d6,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d18_d17_d23),
    kInstruction_vadd_F32_d18_d17_d23,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d29_d21_d18),
    kInstruction_vadd_F64_d29_d21_d18,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d28_d29_d29),
    kInstruction_vadd_F64_d28_d29_d29,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d26_d28_d26),
    kInstruction_vadd_F64_d26_d28_d26,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d2_d18_d10),
    kInstruction_vadd_F64_d2_d18_d10,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d4_d30_d6),
    kInstruction_vadd_F64_d4_d30_d6,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d11_d25_d14),
    kInstruction_vadd_F64_d11_d25_d14,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d4_d26_d15),
    kInstruction_vadd_F32_d4_d26_d15,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d9_d20_d30),
    kInstruction_vadd_F64_d9_d20_d30,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d18_d12_d20),
    kInstruction_vadd_F64_d18_d12_d20,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d1_d27_d15),
    kInstruction_vadd_F64_d1_d27_d15,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d22_d22_d3),
    kInstruction_vadd_F32_d22_d22_d3,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d29_d19_d6),
    kInstruction_vadd_F32_d29_d19_d6,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d9_d23_d8),
    kInstruction_vadd_F64_d9_d23_d8,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d12_d18_d29),
    kInstruction_vadd_F32_d12_d18_d29,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d0_d12_d13),
    kInstruction_vadd_F64_d0_d12_d13,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d9_d17_d17),
    kInstruction_vadd_F64_d9_d17_d17,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d11_d0_d29),
    kInstruction_vadd_F64_d11_d0_d29,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d24_d16_d28),
    kInstruction_vadd_F64_d24_d16_d28,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d22_d14_d26),
    kInstruction_vadd_F64_d22_d14_d26,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d11_d14_d22),
    kInstruction_vadd_F64_d11_d14_d22,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d19_d12_d6),
    kInstruction_vadd_F64_d19_d12_d6,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d29_d3_d28),
    kInstruction_vadd_F64_d29_d3_d28,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d21_d8_d3),
    kInstruction_vadd_F64_d21_d8_d3,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d1_d15_d25),
    kInstruction_vadd_F32_d1_d15_d25,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d22_d8_d8),
    kInstruction_vadd_F64_d22_d8_d8,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d29_d23_d10),
    kInstruction_vadd_F64_d29_d23_d10,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d3_d16_d8),
    kInstruction_vadd_F32_d3_d16_d8,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d1_d0_d13),
    kInstruction_vadd_F32_d1_d0_d13,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d11_d11_d4),
    kInstruction_vadd_F64_d11_d11_d4,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d10_d22_d24),
    kInstruction_vadd_F64_d10_d22_d24,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d16_d22_d3),
    kInstruction_vadd_F64_d16_d22_d3,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d1_d22_d17),
    kInstruction_vadd_F64_d1_d22_d17,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d5_d26_d24),
    kInstruction_vadd_F32_d5_d26_d24,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d17_d1_d18),
    kInstruction_vadd_F64_d17_d1_d18,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d19_d15_d0),
    kInstruction_vadd_F32_d19_d15_d0,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d22_d3_d3),
    kInstruction_vadd_F32_d22_d3_d3,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d30_d16_d4),
    kInstruction_vadd_F32_d30_d16_d4,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d31_d28_d16),
    kInstruction_vadd_F64_d31_d28_d16,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d9_d9_d26),
    kInstruction_vadd_F64_d9_d9_d26,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d18_d12_d5),
    kInstruction_vadd_F32_d18_d12_d5,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d1_d1_d14),
    kInstruction_vadd_F64_d1_d1_d14,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d10_d26_d27),
    kInstruction_vadd_F64_d10_d26_d27,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d4_d24_d28),
    kInstruction_vadd_F32_d4_d24_d28,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d5_d17_d1),
    kInstruction_vadd_F64_d5_d17_d1,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d20_d4_d8),
    kInstruction_vadd_F64_d20_d4_d8,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d14_d5_d27),
    kInstruction_vadd_F32_d14_d5_d27,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d19_d26_d13),
    kInstruction_vadd_F32_d19_d26_d13,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d26_d6_d19),
    kInstruction_vadd_F64_d26_d6_d19,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d5_d26_d31),
    kInstruction_vadd_F64_d5_d26_d31,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d7_d26_d7),
    kInstruction_vadd_F64_d7_d26_d7,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d14_d10_d17),
    kInstruction_vadd_F32_d14_d10_d17,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d4_d16_d30),
    kInstruction_vadd_F32_d4_d16_d30,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d10_d12_d2),
    kInstruction_vadd_F64_d10_d12_d2,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d15_d17_d10),
    kInstruction_vadd_F32_d15_d17_d10,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d20_d25_d20),
    kInstruction_vadd_F64_d20_d25_d20,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d12_d21_d28),
    kInstruction_vadd_F32_d12_d21_d28,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d20_d23_d16),
    kInstruction_vadd_F64_d20_d23_d16,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d11_d19_d18),
    kInstruction_vadd_F64_d11_d19_d18,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d3_d6_d7),
    kInstruction_vadd_F64_d3_d6_d7,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d23_d20_d7),
    kInstruction_vadd_F32_d23_d20_d7,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d3_d16_d19),
    kInstruction_vadd_F32_d3_d16_d19,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d2_d17_d31),
    kInstruction_vadd_F64_d2_d17_d31,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d10_d30_d23),
    kInstruction_vadd_F64_d10_d30_d23,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d27_d11_d2),
    kInstruction_vadd_F64_d27_d11_d2,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d19_d10_d19),
    kInstruction_vadd_F64_d19_d10_d19,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d16_d4_d15),
    kInstruction_vadd_F64_d16_d4_d15,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d8_d28_d1),
    kInstruction_vadd_F32_d8_d28_d1,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d13_d31_d5),
    kInstruction_vadd_F32_d13_d31_d5,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d17_d13_d29),
    kInstruction_vadd_F64_d17_d13_d29,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d27_d19_d10),
    kInstruction_vadd_F32_d27_d19_d10,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d8_d4_d0),
    kInstruction_vadd_F64_d8_d4_d0,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d31_d1_d29),
    kInstruction_vadd_F64_d31_d1_d29,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d6_d2_d12),
    kInstruction_vadd_F64_d6_d2_d12,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d25_d23_d24),
    kInstruction_vadd_F64_d25_d23_d24,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d3_d12_d1),
    kInstruction_vadd_F64_d3_d12_d1,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d24_d18_d16),
    kInstruction_vadd_F64_d24_d18_d16,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d13_d21_d16),
    kInstruction_vadd_F32_d13_d21_d16,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d9_d6_d23),
    kInstruction_vadd_F32_d9_d6_d23,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d14_d14_d13),
    kInstruction_vadd_F64_d14_d14_d13,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d25_d23_d17),
    kInstruction_vadd_F32_d25_d23_d17,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d13_d25_d3),
    kInstruction_vadd_F64_d13_d25_d3,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d9_d11_d8),
    kInstruction_vadd_F64_d9_d11_d8,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d18_d13_d26),
    kInstruction_vadd_F32_d18_d13_d26,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d16_d14_d15),
    kInstruction_vadd_F64_d16_d14_d15,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d5_d30_d13),
    kInstruction_vadd_F32_d5_d30_d13,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d4_d21_d14),
    kInstruction_vadd_F32_d4_d21_d14,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d7_d4_d5),
    kInstruction_vadd_F32_d7_d4_d5,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F64_d2_d23_d13),
    kInstruction_vadd_F64_d2_d23_d13,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d16_d30_d23),
    kInstruction_vadd_F32_d16_d30_d23,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d18_d15_d28),
    kInstruction_vadd_F32_d18_d15_d28,
  },
  {
    ARRAY_SIZE(kInstruction_vadd_F32_d6_d31_d23),
    kInstruction_vadd_F32_d6_d31_d23,
  },
};

#endif  // VIXL_ASSEMBLER_COND_DT_DRT_DRD_DRN_DRM_FLOAT_NOT_F16_VADD_T32_H_
