Lines Matching refs:op3

49 #define IR_OP_NAME(name, flags, op1, op2, op3)  #name,  argument
291 #define _IR_OP_FLAGS(name, flags, op1, op2, op3) \ argument
292 IR_OP_FLAGS(ir_op_flag_ ## flags, ir_op_kind_ ## op1, ir_op_kind_ ## op2, ir_op_kind_ ## op3),
798 ir_ref ir_emit(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3) argument
806 insn->op3 = op3;
826 ir_ref ir_emit3(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3) argument
828 return ir_emit(ctx, opt, op1, op2, op3);
831 static ir_ref _ir_fold_cse(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3) argument
845 if (op3 > limit) {
846 limit = op3;
850 if (insn->opt == opt && insn->op1 == op1 && insn->op2 == op2 && insn->op3 == op3) {
919 ir_ref ir_folding(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3, ir_insn *op1_insn,… argument
967 op3_insn = ctx->ir_base + op3;
973 ctx->fold_insn.op3 = op3;
979 ref = _ir_fold_cse(ctx, opt, op1, op2, op3);
984 ref = ir_emit(ctx, opt, op1, op2, op3);
1002 return ir_emit(ctx, opt, op1, op2, op3);
1007 ctx->fold_insn.op3 = op3;
1027 ir_ref ir_fold(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3) argument
1033 return ir_emit(ctx, opt, op1, op2, op3);
1035 …return ir_folding(ctx, opt, op1, op2, op3, ctx->ir_base + op1, ctx->ir_base + op2, ctx->ir_base +
1053 ir_ref ir_fold3(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3) argument
1055 return ir_fold(ctx, opt, op1, op2, op3);
1902 ir_type type2 = ctx->ir_base[insn->op3].type;
1905 if (ctx->ir_base[insn->op3].op == IR_RLOAD
1906 && (modified_regset & (1 << ctx->ir_base[insn->op3].op2))) {
1910 return insn->op3; /* store forwarding (S2L) */
1912 …return ir_fold1(ctx, IR_OPT(IR_BITCAST, type), insn->op3); /* store forwarding with bitcast (S2L) …
1915 return ir_fold1(ctx, IR_OPT(IR_TRUNC, type), insn->op3); /* partial store forwarding (S2L) */
1923 modified_regset |= (1 << insn->op3);
2257 phi = end->op3;
2258 end->op3 = IR_UNUSED;
2260 } else if (!end->op3) {
2264 type = ctx->ir_base[end->op3].type;
2274 ir_set_op(ctx, phi, i + 2, end->op3);
2275 end->op3 = IR_END;
2720 ir_type type2 = ctx->ir_base[insn->op3].type;
2724 return insn->op3; /* store forwarding (S2L) */
2726 …return ir_fold1(ctx, IR_OPT(IR_BITCAST, type), insn->op3); /* store forwarding with bitcast (S2L) …
2729 return ir_fold1(ctx, IR_OPT(IR_TRUNC, type), insn->op3); /* partial store forwarding (S2L) */
2767 if (insn->op3 == val) {
2850 if (ctx->ir_base[insn->op3].type == type) {
2851 if (insn->op3 == val) {
2868 type2 = ctx->ir_base[insn->op3].type;