xref: /aosp_15_r20/external/mesa3d/src/asahi/compiler/test/test-lower-pseudo.cpp (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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