• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Alyssa Rosenzweig
3  * SPDX-License-Identifier: MIT
4  */
5 
6 #include "agx_compiler.h"
7 
8 bool
agx_allows_16bit_immediate(agx_instr * I)9 agx_allows_16bit_immediate(agx_instr *I)
10 {
11    return (I->op == AGX_OPCODE_DEVICE_LOAD) ||
12           (I->op == AGX_OPCODE_DEVICE_STORE) ||
13           (I->op == AGX_OPCODE_STACK_LOAD) ||
14           (I->op == AGX_OPCODE_STACK_STORE) ||
15           (I->op == AGX_OPCODE_UNIFORM_STORE) || (I->op == AGX_OPCODE_ATOMIC) ||
16           (I->op == AGX_OPCODE_PHI);
17 }
18 
19 unsigned
agx_negate_src_index(agx_instr * I)20 agx_negate_src_index(agx_instr *I)
21 {
22    switch (I->op) {
23    case AGX_OPCODE_IMAD:
24       return 2;
25    case AGX_OPCODE_IADD:
26       return 1;
27    default:
28       unreachable("not allowed");
29    }
30 }
31