// 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_RDLOW_RNLOW_RMLOW_MULS_T32_H_
#define VIXL_ASSEMBLER_COND_RDLOW_RNLOW_RMLOW_MULS_T32_H_

const byte kInstruction_muls_al_r0_r0_r0[] = {
  0x40, 0x43 // muls al r0 r0 r0
};
const byte kInstruction_muls_al_r0_r1_r0[] = {
  0x48, 0x43 // muls al r0 r1 r0
};
const byte kInstruction_muls_al_r0_r2_r0[] = {
  0x50, 0x43 // muls al r0 r2 r0
};
const byte kInstruction_muls_al_r0_r3_r0[] = {
  0x58, 0x43 // muls al r0 r3 r0
};
const byte kInstruction_muls_al_r0_r4_r0[] = {
  0x60, 0x43 // muls al r0 r4 r0
};
const byte kInstruction_muls_al_r0_r5_r0[] = {
  0x68, 0x43 // muls al r0 r5 r0
};
const byte kInstruction_muls_al_r0_r6_r0[] = {
  0x70, 0x43 // muls al r0 r6 r0
};
const byte kInstruction_muls_al_r0_r7_r0[] = {
  0x78, 0x43 // muls al r0 r7 r0
};
const byte kInstruction_muls_al_r1_r0_r1[] = {
  0x41, 0x43 // muls al r1 r0 r1
};
const byte kInstruction_muls_al_r1_r1_r1[] = {
  0x49, 0x43 // muls al r1 r1 r1
};
const byte kInstruction_muls_al_r1_r2_r1[] = {
  0x51, 0x43 // muls al r1 r2 r1
};
const byte kInstruction_muls_al_r1_r3_r1[] = {
  0x59, 0x43 // muls al r1 r3 r1
};
const byte kInstruction_muls_al_r1_r4_r1[] = {
  0x61, 0x43 // muls al r1 r4 r1
};
const byte kInstruction_muls_al_r1_r5_r1[] = {
  0x69, 0x43 // muls al r1 r5 r1
};
const byte kInstruction_muls_al_r1_r6_r1[] = {
  0x71, 0x43 // muls al r1 r6 r1
};
const byte kInstruction_muls_al_r1_r7_r1[] = {
  0x79, 0x43 // muls al r1 r7 r1
};
const byte kInstruction_muls_al_r2_r0_r2[] = {
  0x42, 0x43 // muls al r2 r0 r2
};
const byte kInstruction_muls_al_r2_r1_r2[] = {
  0x4a, 0x43 // muls al r2 r1 r2
};
const byte kInstruction_muls_al_r2_r2_r2[] = {
  0x52, 0x43 // muls al r2 r2 r2
};
const byte kInstruction_muls_al_r2_r3_r2[] = {
  0x5a, 0x43 // muls al r2 r3 r2
};
const byte kInstruction_muls_al_r2_r4_r2[] = {
  0x62, 0x43 // muls al r2 r4 r2
};
const byte kInstruction_muls_al_r2_r5_r2[] = {
  0x6a, 0x43 // muls al r2 r5 r2
};
const byte kInstruction_muls_al_r2_r6_r2[] = {
  0x72, 0x43 // muls al r2 r6 r2
};
const byte kInstruction_muls_al_r2_r7_r2[] = {
  0x7a, 0x43 // muls al r2 r7 r2
};
const byte kInstruction_muls_al_r3_r0_r3[] = {
  0x43, 0x43 // muls al r3 r0 r3
};
const byte kInstruction_muls_al_r3_r1_r3[] = {
  0x4b, 0x43 // muls al r3 r1 r3
};
const byte kInstruction_muls_al_r3_r2_r3[] = {
  0x53, 0x43 // muls al r3 r2 r3
};
const byte kInstruction_muls_al_r3_r3_r3[] = {
  0x5b, 0x43 // muls al r3 r3 r3
};
const byte kInstruction_muls_al_r3_r4_r3[] = {
  0x63, 0x43 // muls al r3 r4 r3
};
const byte kInstruction_muls_al_r3_r5_r3[] = {
  0x6b, 0x43 // muls al r3 r5 r3
};
const byte kInstruction_muls_al_r3_r6_r3[] = {
  0x73, 0x43 // muls al r3 r6 r3
};
const byte kInstruction_muls_al_r3_r7_r3[] = {
  0x7b, 0x43 // muls al r3 r7 r3
};
const byte kInstruction_muls_al_r4_r0_r4[] = {
  0x44, 0x43 // muls al r4 r0 r4
};
const byte kInstruction_muls_al_r4_r1_r4[] = {
  0x4c, 0x43 // muls al r4 r1 r4
};
const byte kInstruction_muls_al_r4_r2_r4[] = {
  0x54, 0x43 // muls al r4 r2 r4
};
const byte kInstruction_muls_al_r4_r3_r4[] = {
  0x5c, 0x43 // muls al r4 r3 r4
};
const byte kInstruction_muls_al_r4_r4_r4[] = {
  0x64, 0x43 // muls al r4 r4 r4
};
const byte kInstruction_muls_al_r4_r5_r4[] = {
  0x6c, 0x43 // muls al r4 r5 r4
};
const byte kInstruction_muls_al_r4_r6_r4[] = {
  0x74, 0x43 // muls al r4 r6 r4
};
const byte kInstruction_muls_al_r4_r7_r4[] = {
  0x7c, 0x43 // muls al r4 r7 r4
};
const byte kInstruction_muls_al_r5_r0_r5[] = {
  0x45, 0x43 // muls al r5 r0 r5
};
const byte kInstruction_muls_al_r5_r1_r5[] = {
  0x4d, 0x43 // muls al r5 r1 r5
};
const byte kInstruction_muls_al_r5_r2_r5[] = {
  0x55, 0x43 // muls al r5 r2 r5
};
const byte kInstruction_muls_al_r5_r3_r5[] = {
  0x5d, 0x43 // muls al r5 r3 r5
};
const byte kInstruction_muls_al_r5_r4_r5[] = {
  0x65, 0x43 // muls al r5 r4 r5
};
const byte kInstruction_muls_al_r5_r5_r5[] = {
  0x6d, 0x43 // muls al r5 r5 r5
};
const byte kInstruction_muls_al_r5_r6_r5[] = {
  0x75, 0x43 // muls al r5 r6 r5
};
const byte kInstruction_muls_al_r5_r7_r5[] = {
  0x7d, 0x43 // muls al r5 r7 r5
};
const byte kInstruction_muls_al_r6_r0_r6[] = {
  0x46, 0x43 // muls al r6 r0 r6
};
const byte kInstruction_muls_al_r6_r1_r6[] = {
  0x4e, 0x43 // muls al r6 r1 r6
};
const byte kInstruction_muls_al_r6_r2_r6[] = {
  0x56, 0x43 // muls al r6 r2 r6
};
const byte kInstruction_muls_al_r6_r3_r6[] = {
  0x5e, 0x43 // muls al r6 r3 r6
};
const byte kInstruction_muls_al_r6_r4_r6[] = {
  0x66, 0x43 // muls al r6 r4 r6
};
const byte kInstruction_muls_al_r6_r5_r6[] = {
  0x6e, 0x43 // muls al r6 r5 r6
};
const byte kInstruction_muls_al_r6_r6_r6[] = {
  0x76, 0x43 // muls al r6 r6 r6
};
const byte kInstruction_muls_al_r6_r7_r6[] = {
  0x7e, 0x43 // muls al r6 r7 r6
};
const byte kInstruction_muls_al_r7_r0_r7[] = {
  0x47, 0x43 // muls al r7 r0 r7
};
const byte kInstruction_muls_al_r7_r1_r7[] = {
  0x4f, 0x43 // muls al r7 r1 r7
};
const byte kInstruction_muls_al_r7_r2_r7[] = {
  0x57, 0x43 // muls al r7 r2 r7
};
const byte kInstruction_muls_al_r7_r3_r7[] = {
  0x5f, 0x43 // muls al r7 r3 r7
};
const byte kInstruction_muls_al_r7_r4_r7[] = {
  0x67, 0x43 // muls al r7 r4 r7
};
const byte kInstruction_muls_al_r7_r5_r7[] = {
  0x6f, 0x43 // muls al r7 r5 r7
};
const byte kInstruction_muls_al_r7_r6_r7[] = {
  0x77, 0x43 // muls al r7 r6 r7
};
const byte kInstruction_muls_al_r7_r7_r7[] = {
  0x7f, 0x43 // muls al r7 r7 r7
};
const TestResult kReferencemuls[] = {
  {
    ARRAY_SIZE(kInstruction_muls_al_r0_r0_r0),
    kInstruction_muls_al_r0_r0_r0,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r0_r1_r0),
    kInstruction_muls_al_r0_r1_r0,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r0_r2_r0),
    kInstruction_muls_al_r0_r2_r0,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r0_r3_r0),
    kInstruction_muls_al_r0_r3_r0,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r0_r4_r0),
    kInstruction_muls_al_r0_r4_r0,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r0_r5_r0),
    kInstruction_muls_al_r0_r5_r0,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r0_r6_r0),
    kInstruction_muls_al_r0_r6_r0,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r0_r7_r0),
    kInstruction_muls_al_r0_r7_r0,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r1_r0_r1),
    kInstruction_muls_al_r1_r0_r1,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r1_r1_r1),
    kInstruction_muls_al_r1_r1_r1,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r1_r2_r1),
    kInstruction_muls_al_r1_r2_r1,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r1_r3_r1),
    kInstruction_muls_al_r1_r3_r1,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r1_r4_r1),
    kInstruction_muls_al_r1_r4_r1,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r1_r5_r1),
    kInstruction_muls_al_r1_r5_r1,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r1_r6_r1),
    kInstruction_muls_al_r1_r6_r1,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r1_r7_r1),
    kInstruction_muls_al_r1_r7_r1,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r2_r0_r2),
    kInstruction_muls_al_r2_r0_r2,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r2_r1_r2),
    kInstruction_muls_al_r2_r1_r2,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r2_r2_r2),
    kInstruction_muls_al_r2_r2_r2,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r2_r3_r2),
    kInstruction_muls_al_r2_r3_r2,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r2_r4_r2),
    kInstruction_muls_al_r2_r4_r2,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r2_r5_r2),
    kInstruction_muls_al_r2_r5_r2,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r2_r6_r2),
    kInstruction_muls_al_r2_r6_r2,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r2_r7_r2),
    kInstruction_muls_al_r2_r7_r2,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r3_r0_r3),
    kInstruction_muls_al_r3_r0_r3,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r3_r1_r3),
    kInstruction_muls_al_r3_r1_r3,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r3_r2_r3),
    kInstruction_muls_al_r3_r2_r3,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r3_r3_r3),
    kInstruction_muls_al_r3_r3_r3,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r3_r4_r3),
    kInstruction_muls_al_r3_r4_r3,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r3_r5_r3),
    kInstruction_muls_al_r3_r5_r3,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r3_r6_r3),
    kInstruction_muls_al_r3_r6_r3,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r3_r7_r3),
    kInstruction_muls_al_r3_r7_r3,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r4_r0_r4),
    kInstruction_muls_al_r4_r0_r4,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r4_r1_r4),
    kInstruction_muls_al_r4_r1_r4,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r4_r2_r4),
    kInstruction_muls_al_r4_r2_r4,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r4_r3_r4),
    kInstruction_muls_al_r4_r3_r4,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r4_r4_r4),
    kInstruction_muls_al_r4_r4_r4,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r4_r5_r4),
    kInstruction_muls_al_r4_r5_r4,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r4_r6_r4),
    kInstruction_muls_al_r4_r6_r4,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r4_r7_r4),
    kInstruction_muls_al_r4_r7_r4,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r5_r0_r5),
    kInstruction_muls_al_r5_r0_r5,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r5_r1_r5),
    kInstruction_muls_al_r5_r1_r5,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r5_r2_r5),
    kInstruction_muls_al_r5_r2_r5,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r5_r3_r5),
    kInstruction_muls_al_r5_r3_r5,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r5_r4_r5),
    kInstruction_muls_al_r5_r4_r5,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r5_r5_r5),
    kInstruction_muls_al_r5_r5_r5,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r5_r6_r5),
    kInstruction_muls_al_r5_r6_r5,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r5_r7_r5),
    kInstruction_muls_al_r5_r7_r5,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r6_r0_r6),
    kInstruction_muls_al_r6_r0_r6,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r6_r1_r6),
    kInstruction_muls_al_r6_r1_r6,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r6_r2_r6),
    kInstruction_muls_al_r6_r2_r6,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r6_r3_r6),
    kInstruction_muls_al_r6_r3_r6,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r6_r4_r6),
    kInstruction_muls_al_r6_r4_r6,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r6_r5_r6),
    kInstruction_muls_al_r6_r5_r6,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r6_r6_r6),
    kInstruction_muls_al_r6_r6_r6,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r6_r7_r6),
    kInstruction_muls_al_r6_r7_r6,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r7_r0_r7),
    kInstruction_muls_al_r7_r0_r7,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r7_r1_r7),
    kInstruction_muls_al_r7_r1_r7,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r7_r2_r7),
    kInstruction_muls_al_r7_r2_r7,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r7_r3_r7),
    kInstruction_muls_al_r7_r3_r7,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r7_r4_r7),
    kInstruction_muls_al_r7_r4_r7,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r7_r5_r7),
    kInstruction_muls_al_r7_r5_r7,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r7_r6_r7),
    kInstruction_muls_al_r7_r6_r7,
  },
  {
    ARRAY_SIZE(kInstruction_muls_al_r7_r7_r7),
    kInstruction_muls_al_r7_r7_r7,
  },
};

#endif  // VIXL_ASSEMBLER_COND_RDLOW_RNLOW_RMLOW_MULS_T32_H_
