xref: /aosp_15_r20/external/XNNPACK/test/assembler-helpers.h (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2022 Google LLC
2*4bdc9457SAndroid Build Coastguard Worker //
3*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the
4*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree.
5*4bdc9457SAndroid Build Coastguard Worker 
6*4bdc9457SAndroid Build Coastguard Worker #pragma once
7*4bdc9457SAndroid Build Coastguard Worker 
8*4bdc9457SAndroid Build Coastguard Worker // clang-format off
9*4bdc9457SAndroid Build Coastguard Worker #define EXPECT_INSTR(expected, actual)                                                                        \
10*4bdc9457SAndroid Build Coastguard Worker   EXPECT_EQ(expected, actual) << "expected = 0x" << std::hex << std::setw(8) << std::setfill('0') << expected \
11*4bdc9457SAndroid Build Coastguard Worker                               << std::endl << "  actual = 0x" << actual;
12*4bdc9457SAndroid Build Coastguard Worker // clang-format on
13*4bdc9457SAndroid Build Coastguard Worker 
14*4bdc9457SAndroid Build Coastguard Worker #define CHECK_ENCODING(expected, call)   \
15*4bdc9457SAndroid Build Coastguard Worker   a.reset();                             \
16*4bdc9457SAndroid Build Coastguard Worker   call;                                  \
17*4bdc9457SAndroid Build Coastguard Worker   EXPECT_EQ(Error::kNoError, a.error()); \
18*4bdc9457SAndroid Build Coastguard Worker   EXPECT_INSTR(expected, *reinterpret_cast<const uint32_t*>(a.start()))
19*4bdc9457SAndroid Build Coastguard Worker 
20*4bdc9457SAndroid Build Coastguard Worker #define EXPECT_ERROR(expected, call) \
21*4bdc9457SAndroid Build Coastguard Worker   a.reset();                         \
22*4bdc9457SAndroid Build Coastguard Worker   call;                              \
23*4bdc9457SAndroid Build Coastguard Worker   EXPECT_EQ(expected, a.error());
24