/* * Copyright 2022 Alyssa Rosenzweig * SPDX-License-Identifier: MIT */ #include "agx_compiler.h" bool agx_allows_16bit_immediate(agx_instr *I) { return (I->op == AGX_OPCODE_DEVICE_LOAD) || (I->op == AGX_OPCODE_DEVICE_STORE) || (I->op == AGX_OPCODE_STACK_LOAD) || (I->op == AGX_OPCODE_STACK_STORE) || (I->op == AGX_OPCODE_UNIFORM_STORE) || (I->op == AGX_OPCODE_ATOMIC) || (I->op == AGX_OPCODE_PHI); } unsigned agx_negate_src_index(agx_instr *I) { switch (I->op) { case AGX_OPCODE_IMAD: return 2; case AGX_OPCODE_IADD: return 1; default: unreachable("not allowed"); } }