Lines Matching refs:a_insn
312 auto a_insn = a->get_def(a_type); in TypesMatch() local
314 assert(a_insn != a->end()); in TypesMatch()
319 if (a_arrayed && a_insn.opcode() == spv::OpTypeArray) { in TypesMatch()
320 return TypesMatch(a, b, a_insn.word(2), b_type, false, b_arrayed, relaxed); in TypesMatch()
328 if (a_insn.opcode() == spv::OpTypeVector && relaxed && IsNarrowNumericType(b_insn)) { in TypesMatch()
329 return TypesMatch(a, b, a_insn.word(2), b_type, a_arrayed, b_arrayed, false); in TypesMatch()
332 if (a_insn.opcode() != b_insn.opcode()) { in TypesMatch()
336 if (a_insn.opcode() == spv::OpTypePointer) { in TypesMatch()
338 return TypesMatch(a, b, a_insn.word(3), b_insn.word(3), a_arrayed, b_arrayed, relaxed); in TypesMatch()
346 switch (a_insn.opcode()) { in TypesMatch()
351 return a_insn.word(2) == b_insn.word(2) && a_insn.word(3) == b_insn.word(3); in TypesMatch()
354 return a_insn.word(2) == b_insn.word(2); in TypesMatch()
357 … if (!TypesMatch(a, b, a_insn.word(2), b_insn.word(2), a_arrayed, b_arrayed, false)) return false; in TypesMatch()
358 if (relaxed && IsNarrowNumericType(a->get_def(a_insn.word(2)))) { in TypesMatch()
359 return a_insn.word(3) >= b_insn.word(3); in TypesMatch()
361 return a_insn.word(3) == b_insn.word(3); in TypesMatch()
365 return TypesMatch(a, b, a_insn.word(2), b_insn.word(2), a_arrayed, b_arrayed, false) && in TypesMatch()
366 a_insn.word(3) == b_insn.word(3); in TypesMatch()
370 return TypesMatch(a, b, a_insn.word(2), b_insn.word(2), a_arrayed, b_arrayed, false) && in TypesMatch()
371 GetConstantValue(a, a_insn.word(3)) == GetConstantValue(b, b_insn.word(3)); in TypesMatch()
375 if (a_insn.len() != b_insn.len()) { in TypesMatch()
379 for (unsigned i = 2; i < a_insn.len(); i++) { in TypesMatch()
380 … if (!TypesMatch(a, b, a_insn.word(i), b_insn.word(i), a_arrayed, b_arrayed, false)) { in TypesMatch()