1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker * Copyright 2021 Collabora, Ltd.
3*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker */
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard Worker #include "agx_test.h"
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Worker #include <gtest/gtest.h>
9*61046927SAndroid Build Coastguard Worker
10*61046927SAndroid Build Coastguard Worker #define CASE(instr, expected) \
11*61046927SAndroid Build Coastguard Worker INSTRUCTION_CASE(instr, expected, agx_lower_pseudo)
12*61046927SAndroid Build Coastguard Worker #define NEGCASE(instr) CASE(instr, instr)
13*61046927SAndroid Build Coastguard Worker
14*61046927SAndroid Build Coastguard Worker class LowerPseudo : public testing::Test {
15*61046927SAndroid Build Coastguard Worker protected:
LowerPseudo()16*61046927SAndroid Build Coastguard Worker LowerPseudo()
17*61046927SAndroid Build Coastguard Worker {
18*61046927SAndroid Build Coastguard Worker mem_ctx = ralloc_context(NULL);
19*61046927SAndroid Build Coastguard Worker
20*61046927SAndroid Build Coastguard Worker wx = agx_register(0, AGX_SIZE_32);
21*61046927SAndroid Build Coastguard Worker wy = agx_register(2, AGX_SIZE_32);
22*61046927SAndroid Build Coastguard Worker wz = agx_register(4, AGX_SIZE_32);
23*61046927SAndroid Build Coastguard Worker }
24*61046927SAndroid Build Coastguard Worker
~LowerPseudo()25*61046927SAndroid Build Coastguard Worker ~LowerPseudo()
26*61046927SAndroid Build Coastguard Worker {
27*61046927SAndroid Build Coastguard Worker ralloc_free(mem_ctx);
28*61046927SAndroid Build Coastguard Worker }
29*61046927SAndroid Build Coastguard Worker
30*61046927SAndroid Build Coastguard Worker void *mem_ctx;
31*61046927SAndroid Build Coastguard Worker agx_index wx, wy, wz;
32*61046927SAndroid Build Coastguard Worker };
33*61046927SAndroid Build Coastguard Worker
TEST_F(LowerPseudo,Move)34*61046927SAndroid Build Coastguard Worker TEST_F(LowerPseudo, Move)
35*61046927SAndroid Build Coastguard Worker {
36*61046927SAndroid Build Coastguard Worker CASE(agx_mov_to(b, wx, wy), agx_bitop_to(b, wx, wy, agx_zero(), 0xA));
37*61046927SAndroid Build Coastguard Worker }
38*61046927SAndroid Build Coastguard Worker
TEST_F(LowerPseudo,Not)39*61046927SAndroid Build Coastguard Worker TEST_F(LowerPseudo, Not)
40*61046927SAndroid Build Coastguard Worker {
41*61046927SAndroid Build Coastguard Worker CASE(agx_not_to(b, wx, wy), agx_bitop_to(b, wx, wy, agx_zero(), 0x5));
42*61046927SAndroid Build Coastguard Worker }
43