// 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_A32_H_
#define VIXL_ASSEMBLER_COND_DT_DRT_DRD_DRN_DRM_FLOAT_NOT_F16_VADD_A32_H_

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