/* * Copyright (C) 2020 Collabora, Ltd. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /* Autogenerated file, do not edit */ #include #include "bir.h" static inline const char * bi_adj_as_str(enum bi_adj adj) { switch (adj) { case BI_ADJ_LOW: return ".low"; case BI_ADJ_NONE: return ""; case BI_ADJ_SMALL: return ".small"; } unreachable("Invalid adj"); }; static inline const char * bi_atom_opc_as_str(enum bi_atom_opc atom_opc) { switch (atom_opc) { case BI_ATOM_OPC_AADD: return ".aadd"; case BI_ATOM_OPC_AADDS: return ".aadds"; case BI_ATOM_OPC_AADDU: return ".aaddu"; case BI_ATOM_OPC_AAND: return ".aand"; case BI_ATOM_OPC_ADEC: return ".adec"; case BI_ATOM_OPC_AINC: return ".ainc"; case BI_ATOM_OPC_AOR: return ".aor"; case BI_ATOM_OPC_AOR1: return ".aor1"; case BI_ATOM_OPC_ASMAX: return ".asmax"; case BI_ATOM_OPC_ASMAX1: return ".asmax1"; case BI_ATOM_OPC_ASMIN: return ".asmin"; case BI_ATOM_OPC_AUMAX: return ".aumax"; case BI_ATOM_OPC_AUMAX1: return ".aumax1"; case BI_ATOM_OPC_AUMIN: return ".aumin"; case BI_ATOM_OPC_AXOR: return ".axor"; } unreachable("Invalid atom_opc"); }; static inline const char * bi_clamp_as_str(enum bi_clamp clamp) { switch (clamp) { case BI_CLAMP_CLAMP_0_1: return ".clamp_0_1"; case BI_CLAMP_CLAMP_0_INF: return ".clamp_0_inf"; case BI_CLAMP_CLAMP_M1_1: return ".clamp_m1_1"; case BI_CLAMP_NONE: return ""; } unreachable("Invalid clamp"); }; static inline const char * bi_cmpf_as_str(enum bi_cmpf cmpf) { switch (cmpf) { case BI_CMPF_EQ: return ".eq"; case BI_CMPF_GE: return ".ge"; case BI_CMPF_GT: return ".gt"; case BI_CMPF_GTLT: return ".gtlt"; case BI_CMPF_LE: return ".le"; case BI_CMPF_LT: return ".lt"; case BI_CMPF_NE: return ".ne"; case BI_CMPF_TOTAL: return ".total"; } unreachable("Invalid cmpf"); }; static inline const char * bi_extend_as_str(enum bi_extend extend) { switch (extend) { case BI_EXTEND_NONE: return ""; case BI_EXTEND_SEXT: return ".sext"; case BI_EXTEND_ZEXT: return ".zext"; } unreachable("Invalid extend"); }; static inline const char * bi_func_as_str(enum bi_func func) { switch (func) { case BI_FUNC_POW: return ".pow"; case BI_FUNC_POWN: return ".pown"; case BI_FUNC_POWR: return ".powr"; case BI_FUNC_ROOTN: return ".rootn"; } unreachable("Invalid func"); }; static inline const char * bi_function_as_str(enum bi_function function) { switch (function) { case BI_FUNCTION_AND: return ".and"; case BI_FUNCTION_NONE: return ""; case BI_FUNCTION_OR: return ".or"; } unreachable("Invalid function"); }; static inline const char * bi_inactive_result_as_str(enum bi_inactive_result inactive_result) { switch (inactive_result) { case BI_INACTIVE_RESULT_F1: return ".f1"; case BI_INACTIVE_RESULT_I1: return ".i1"; case BI_INACTIVE_RESULT_INF: return ".inf"; case BI_INACTIVE_RESULT_INFN: return ".infn"; case BI_INACTIVE_RESULT_SMAX: return ".smax"; case BI_INACTIVE_RESULT_SMIN: return ".smin"; case BI_INACTIVE_RESULT_UMAX: return ".umax"; case BI_INACTIVE_RESULT_V2F1: return ".v2f1"; case BI_INACTIVE_RESULT_V2I1: return ".v2i1"; case BI_INACTIVE_RESULT_V2INF: return ".v2inf"; case BI_INACTIVE_RESULT_V2INFN: return ".v2infn"; case BI_INACTIVE_RESULT_V2SMAX: return ".v2smax"; case BI_INACTIVE_RESULT_V2SMIN: return ".v2smin"; case BI_INACTIVE_RESULT_V4SMAX: return ".v4smax"; case BI_INACTIVE_RESULT_V4SMIN: return ".v4smin"; case BI_INACTIVE_RESULT_ZERO: return ".zero"; } unreachable("Invalid inactive_result"); }; static inline const char * bi_lane_as_str(enum bi_lane lane) { switch (lane) { case BI_LANE_B0: return ".b0"; case BI_LANE_B1: return ".b1"; case BI_LANE_B2: return ".b2"; case BI_LANE_B3: return ".b3"; case BI_LANE_D0: return ".d0"; case BI_LANE_H0: return ".h0"; case BI_LANE_H1: return ".h1"; case BI_LANE_NONE: return ""; case BI_LANE_W0: return ".w0"; } unreachable("Invalid lane"); }; static inline const char * bi_lane_op_as_str(enum bi_lane_op lane_op) { switch (lane_op) { case BI_LANE_OP_ACCUMULATE: return ".accumulate"; case BI_LANE_OP_NONE: return ""; case BI_LANE_OP_SHIFT: return ".shift"; case BI_LANE_OP_XOR: return ".xor"; } unreachable("Invalid lane_op"); }; static inline const char * bi_lanes_as_str(enum bi_lanes lanes) { switch (lanes) { case BI_LANES_B0: return ".b0"; case BI_LANES_B00: return ".b00"; case BI_LANES_B0000: return ".b0000"; case BI_LANES_B01: return ".b01"; case BI_LANES_B0101: return ".b0101"; case BI_LANES_B0123: return ".b0123"; case BI_LANES_B02: return ".b02"; case BI_LANES_B1: return ".b1"; case BI_LANES_B11: return ".b11"; case BI_LANES_B1111: return ".b1111"; case BI_LANES_B2: return ".b2"; case BI_LANES_B22: return ".b22"; case BI_LANES_B2222: return ".b2222"; case BI_LANES_B23: return ".b23"; case BI_LANES_B2323: return ".b2323"; case BI_LANES_B3: return ".b3"; case BI_LANES_B33: return ".b33"; case BI_LANES_B3333: return ".b3333"; case BI_LANES_H0: return ".h0"; case BI_LANES_H00: return ".h00"; case BI_LANES_H01: return ".h01"; case BI_LANES_H1: return ".h1"; case BI_LANES_H10: return ".h10"; case BI_LANES_H11: return ".h11"; case BI_LANES_NONE: return ""; } unreachable("Invalid lanes"); }; static inline const char * bi_mode_as_str(enum bi_mode mode) { switch (mode) { case BI_MODE_BASE2: return ".base2"; case BI_MODE_NATURAL: return ".natural"; case BI_MODE_RED: return ".red"; } unreachable("Invalid mode"); }; static inline const char * bi_mux_as_str(enum bi_mux mux) { switch (mux) { case BI_MUX_BIT: return ".bit"; case BI_MUX_FP_ZERO: return ".fp_zero"; case BI_MUX_INT_ZERO: return ".int_zero"; case BI_MUX_NEG: return ".neg"; } unreachable("Invalid mux"); }; static inline const char * bi_precision_as_str(enum bi_precision precision) { switch (precision) { case BI_PRECISION_HIGH: return ".high"; case BI_PRECISION_LOW: return ".low"; case BI_PRECISION_NONE: return ""; } unreachable("Invalid precision"); }; static inline const char * bi_register_format_as_str(enum bi_register_format register_format) { switch (register_format) { case BI_REGISTER_FORMAT_AUTO: return ".auto"; case BI_REGISTER_FORMAT_F16: return ".f16"; case BI_REGISTER_FORMAT_F32: return ".f32"; case BI_REGISTER_FORMAT_F64: return ".f64"; case BI_REGISTER_FORMAT_I64: return ".i64"; case BI_REGISTER_FORMAT_S16: return ".s16"; case BI_REGISTER_FORMAT_S32: return ".s32"; case BI_REGISTER_FORMAT_U16: return ".u16"; case BI_REGISTER_FORMAT_U32: return ".u32"; } unreachable("Invalid register_format"); }; static inline const char * bi_replicate_as_str(enum bi_replicate replicate) { switch (replicate) { case BI_REPLICATE_B0000: return ".b0000"; case BI_REPLICATE_B0123: return ".b0123"; case BI_REPLICATE_B1111: return ".b1111"; case BI_REPLICATE_B2222: return ".b2222"; case BI_REPLICATE_B3333: return ".b3333"; } unreachable("Invalid replicate"); }; static inline const char * bi_result_type_as_str(enum bi_result_type result_type) { switch (result_type) { case BI_RESULT_TYPE_F1: return ".f1"; case BI_RESULT_TYPE_I1: return ".i1"; case BI_RESULT_TYPE_M1: return ".m1"; } unreachable("Invalid result_type"); }; static inline const char * bi_round_as_str(enum bi_round round) { switch (round) { case BI_ROUND_INF: return ".inf"; case BI_ROUND_INF0: return ".inf0"; case BI_ROUND_NONE: return ""; case BI_ROUND_RTN: return ".rtn"; case BI_ROUND_RTNA: return ".rtna"; case BI_ROUND_RTO: return ".rto"; case BI_ROUND_RTP: return ".rtp"; case BI_ROUND_RTZ: return ".rtz"; } unreachable("Invalid round"); }; static inline const char * bi_sample_as_str(enum bi_sample sample) { switch (sample) { case BI_SAMPLE_CENTER: return ".center"; case BI_SAMPLE_CENTROID: return ".centroid"; case BI_SAMPLE_EXPLICIT: return ".explicit"; case BI_SAMPLE_NONE: return ""; case BI_SAMPLE_SAMPLE: return ".sample"; } unreachable("Invalid sample"); }; static inline const char * bi_seg_as_str(enum bi_seg seg) { switch (seg) { case BI_SEG_NONE: return ""; case BI_SEG_STREAM: return ".stream"; case BI_SEG_TL: return ".tl"; case BI_SEG_UBO: return ".ubo"; case BI_SEG_WLS: return ".wls"; } unreachable("Invalid seg"); }; static inline const char * bi_sem_as_str(enum bi_sem sem) { switch (sem) { case BI_SEM_C: return ".c"; case BI_SEM_INVERSE_C: return ".inverse_c"; case BI_SEM_NAN_PROPAGATE: return ".nan_propagate"; case BI_SEM_NAN_SUPPRESS: return ".nan_suppress"; } unreachable("Invalid sem"); }; static inline const char * bi_source_as_str(enum bi_source source) { switch (source) { case BI_SOURCE_CYCLE_COUNTER: return ".cycle_counter"; case BI_SOURCE_SYSTEM_TIMESTAMP: return ".system_timestamp"; } unreachable("Invalid source"); }; static inline const char * bi_special_as_str(enum bi_special special) { switch (special) { case BI_SPECIAL_LEFT: return ".left"; case BI_SPECIAL_N: return ".n"; case BI_SPECIAL_NONE: return ""; case BI_SPECIAL_SCALE16: return ".scale16"; } unreachable("Invalid special"); }; static inline const char * bi_stack_mode_as_str(enum bi_stack_mode stack_mode) { switch (stack_mode) { case BI_STACK_MODE_CALL: return ".call"; case BI_STACK_MODE_NONE: return ""; case BI_STACK_MODE_REPLACE: return ".replace"; case BI_STACK_MODE_RETURN: return ".return"; } unreachable("Invalid stack_mode"); }; static inline const char * bi_subgroup_as_str(enum bi_subgroup subgroup) { switch (subgroup) { case BI_SUBGROUP_SUBGROUP2: return ".subgroup2"; case BI_SUBGROUP_SUBGROUP4: return ".subgroup4"; case BI_SUBGROUP_SUBGROUP8: return ".subgroup8"; } unreachable("Invalid subgroup"); }; static inline const char * bi_swz_as_str(enum bi_swz swz) { switch (swz) { case BI_SWZ_B00: return ".b00"; case BI_SWZ_B0000: return ".b0000"; case BI_SWZ_B0011: return ".b0011"; case BI_SWZ_B01: return ".b01"; case BI_SWZ_B02: return ".b02"; case BI_SWZ_B03: return ".b03"; case BI_SWZ_B10: return ".b10"; case BI_SWZ_B1032: return ".b1032"; case BI_SWZ_B11: return ".b11"; case BI_SWZ_B1111: return ".b1111"; case BI_SWZ_B12: return ".b12"; case BI_SWZ_B13: return ".b13"; case BI_SWZ_B20: return ".b20"; case BI_SWZ_B21: return ".b21"; case BI_SWZ_B22: return ".b22"; case BI_SWZ_B2222: return ".b2222"; case BI_SWZ_B2233: return ".b2233"; case BI_SWZ_B23: return ".b23"; case BI_SWZ_B30: return ".b30"; case BI_SWZ_B31: return ".b31"; case BI_SWZ_B32: return ".b32"; case BI_SWZ_B3210: return ".b3210"; case BI_SWZ_B33: return ".b33"; case BI_SWZ_B3333: return ".b3333"; case BI_SWZ_H00: return ".h00"; case BI_SWZ_H01: return ".h01"; case BI_SWZ_H10: return ".h10"; case BI_SWZ_H11: return ".h11"; } unreachable("Invalid swz"); }; static inline const char * bi_update_as_str(enum bi_update update) { switch (update) { case BI_UPDATE_CLOBBER: return ".clobber"; case BI_UPDATE_CONDITIONAL: return ".conditional"; case BI_UPDATE_RETRIEVE: return ".retrieve"; case BI_UPDATE_STORE: return ".store"; } unreachable("Invalid update"); }; static inline const char * bi_varying_name_as_str(enum bi_varying_name varying_name) { switch (varying_name) { case BI_VARYING_NAME_FRAG_W: return ".frag_w"; case BI_VARYING_NAME_FRAG_Z: return ".frag_z"; case BI_VARYING_NAME_POINT: return ".point"; } unreachable("Invalid varying_name"); }; static inline const char * bi_vecsize_as_str(enum bi_vecsize vecsize) { switch (vecsize) { case BI_VECSIZE_NONE: return ""; case BI_VECSIZE_V2: return ".v2"; case BI_VECSIZE_V3: return ".v3"; case BI_VECSIZE_V4: return ".v4"; } unreachable("Invalid vecsize"); }; static inline const char * bi_widen_as_str(enum bi_widen widen) { switch (widen) { case BI_WIDEN_B0: return ".b0"; case BI_WIDEN_B1: return ".b1"; case BI_WIDEN_B2: return ".b2"; case BI_WIDEN_B3: return ".b3"; case BI_WIDEN_H0: return ".h0"; case BI_WIDEN_H1: return ".h1"; case BI_WIDEN_NONE: return ""; } unreachable("Invalid widen"); }; void bi_print_instr(bi_instr *I, FILE *fp) { switch (I->op) { case BI_ARSHIFT_I32: fputs("ARSHIFT.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_ARSHIFT_V2I16: fputs("ARSHIFT.v2i16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_ARSHIFT_V4I8: fputs("ARSHIFT.v4i8 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_ARSHIFT_DOUBLE_I32: fputs("ARSHIFT_DOUBLE.i32", fp); if (I->result_word) fputs(".result_word", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->bytes2) fputs(".bytes", fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_ATOM_C_I32: fputs("ATOM_C.i32", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_ATOM_C_I64: fputs("ATOM_C.i64", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_ATOM_C1_I32: fputs("ATOM_C1.i32", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ATOM_C1_I64: fputs("ATOM_C1.i64", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ATOM_C1_RETURN_I32: fputs("ATOM_C1_RETURN.i32", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ATOM_C1_RETURN_I64: fputs("ATOM_C1_RETURN.i64", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ATOM_C_RETURN_I32: fputs("ATOM_C_RETURN.i32", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_ATOM_C_RETURN_I64: fputs("ATOM_C_RETURN.i64", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_ATOM_POST_I32: fputs("ATOM_POST.i32", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ATOM_POST_I64: fputs("ATOM_POST.i64", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ATOM_PRE_I64: fputs("ATOM_PRE.i64", fp); fputs(bi_atom_opc_as_str(I->atom_opc), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BITREV_I32: fputs("BITREV.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_CLZ_U32: fputs("CLZ.u32", fp); if (I->mask) fputs(".mask", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_CLZ_V2U16: fputs("CLZ.v2u16", fp); if (I->mask) fputs(".mask", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_CLZ_V4U8: fputs("CLZ.v4u8", fp); if (I->mask) fputs(".mask", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_CSEL_F32: fputs("CSEL.f32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_CSEL_I32: fputs("CSEL.i32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_CSEL_S32: fputs("CSEL.s32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_CSEL_U32: fputs("CSEL.u32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_CSEL_V2F16: fputs("CSEL.v2f16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_CSEL_V2I16: fputs("CSEL.v2i16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_CSEL_V2S16: fputs("CSEL.v2s16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_CSEL_V2U16: fputs("CSEL.v2u16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_CUBEFACE1: fputs("CUBEFACE1 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->neg[1]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->neg[2]) fputs(".neg", fp); fputs("\n", fp); return; case BI_DTSEL_IMM: fputs("DTSEL_IMM ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fprintf(fp, ", table:%u", I->table); fputs("\n", fp); return; case BI_F16_TO_F32: fputs("F16_TO_F32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_FADD_F32: fputs("FADD.f32", fp); fputs(bi_round_as_str(I->round), fp); fputs(bi_clamp_as_str(I->clamp), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); if (I->abs[0]) fputs(".abs", fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->abs[1]) fputs(".abs", fp); if (I->neg[1]) fputs(".neg", fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs("\n", fp); return; case BI_FADD_V2F16: fputs("FADD.v2f16", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); if (I->abs[0]) fputs(".abs", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->abs[1]) fputs(".abs", fp); if (I->neg[1]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[1].swz), fp); fputs("\n", fp); return; case BI_FADD_LSCALE_F32: fputs("FADD_LSCALE.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); if (I->neg[0]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->abs[1]) fputs(".abs", fp); if (I->neg[1]) fputs(".neg", fp); fputs("\n", fp); return; case BI_FCMP_F32: fputs("FCMP.f32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); if (I->neg[0]) fputs(".neg", fp); if (I->abs[0]) fputs(".abs", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); if (I->neg[1]) fputs(".neg", fp); if (I->abs[1]) fputs(".abs", fp); fputs("\n", fp); return; case BI_FCMP_V2F16: fputs("FCMP.v2f16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->neg[1]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[1].swz), fp); fputs("\n", fp); return; case BI_FLSHIFT_DOUBLE_I32: fputs("FLSHIFT_DOUBLE.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->bytes2) fputs(".bytes", fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_FMA_F32: fputs("FMA.f32", fp); fputs(bi_round_as_str(I->round), fp); fputs(bi_clamp_as_str(I->clamp), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); if (I->neg[0]) fputs(".neg", fp); if (I->abs[0]) fputs(".abs", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); if (I->neg[1]) fputs(".neg", fp); if (I->abs[1]) fputs(".abs", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->neg[2]) fputs(".neg", fp); if (I->abs[2]) fputs(".abs", fp); fputs("\n", fp); return; case BI_FMA_V2F16: fputs("FMA.v2f16", fp); fputs(bi_round_as_str(I->round), fp); fputs(bi_clamp_as_str(I->clamp), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->neg[1]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[1].swz), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->neg[2]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[2].swz), fp); fputs("\n", fp); return; case BI_FMA_RSCALE_F32: fputs("FMA_RSCALE.f32", fp); fputs(bi_round_as_str(I->round), fp); fputs(bi_clamp_as_str(I->clamp), fp); fputs(bi_special_as_str(I->special), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); if (I->abs[0]) fputs(".abs", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->neg[1]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->neg[2]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_FMA_RSCALE_V2F16: fputs("FMA_RSCALE.v2f16", fp); fputs(bi_round_as_str(I->round), fp); fputs(bi_clamp_as_str(I->clamp), fp); fputs(bi_special_as_str(I->special), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); if (I->abs[0]) fputs(".abs", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->neg[1]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->neg[2]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_FMUL_CSLICE: fputs("FMUL_CSLICE ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); if (I->abs[0]) fputs(".abs", fp); if (I->neg[0]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_FMUL_SLICE_F32: fputs("FMUL_SLICE.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_FREXPE_F32: fputs("FREXPE.f32", fp); if (I->neg) fputs(".neg", fp); if (I->sqrt) fputs(".sqrt", fp); if (I->log) fputs(".log", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs("\n", fp); return; case BI_FREXPE_V2F16: fputs("FREXPE.v2f16", fp); if (I->neg) fputs(".neg", fp); if (I->sqrt) fputs(".sqrt", fp); if (I->log) fputs(".log", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_FREXPM_F32: fputs("FREXPM.f32", fp); if (I->sqrt) fputs(".sqrt", fp); if (I->log) fputs(".log", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); if (I->neg[0]) fputs(".neg", fp); fputs("\n", fp); return; case BI_FREXPM_V2F16: fputs("FREXPM.v2f16", fp); if (I->sqrt) fputs(".sqrt", fp); if (I->log) fputs(".log", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); if (I->neg[0]) fputs(".neg", fp); fputs("\n", fp); return; case BI_FROUND_F32: fputs("FROUND.f32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); if (I->neg[0]) fputs(".neg", fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs("\n", fp); return; case BI_FROUND_V2F16: fputs("FROUND.v2f16", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); if (I->neg[0]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_FRSHIFT_DOUBLE_I32: fputs("FRSHIFT_DOUBLE.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->bytes2) fputs(".bytes", fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_IADDC_I32: fputs("IADDC.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_IDP_V4I8: fputs("IDP.v4i8 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->sign[0]) fputs(".sign", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->sign[1]) fputs(".sign", fp); fputs("\n", fp); return; case BI_IMUL_I32: fputs("IMUL.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs(bi_extend_as_str(I->extend[1]), fp); fputs("\n", fp); return; case BI_IMUL_V2I16: fputs("IMUL.v2i16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_swz_as_str(I->swizzle[1].swz), fp); fputs("\n", fp); return; case BI_IMUL_V4I8: fputs("IMUL.v4i8 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_replicate_as_str(I->swizzle[0].replicate), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_replicate_as_str(I->swizzle[1].replicate), fp); fputs("\n", fp); return; case BI_IMULD: fputs("IMULD", fp); if (I->threads) fputs(".threads", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ISUBB_I32: fputs("ISUBB.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_JUMP_EX: fputs("JUMP_EX", fp); if (I->test_mode) fputs(".test_mode", fp); fputs(bi_stack_mode_as_str(I->stack_mode), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_LROT_DOUBLE_I32: fputs("LROT_DOUBLE.i32", fp); if (I->result_word) fputs(".result_word", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->bytes2) fputs(".bytes", fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_LSHIFT_AND_I32: fputs("LSHIFT_AND.i32", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_LSHIFT_AND_V2I16: fputs("LSHIFT_AND.v2i16", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_LSHIFT_AND_V4I8: fputs("LSHIFT_AND.v4i8", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_LSHIFT_DOUBLE_I32: fputs("LSHIFT_DOUBLE.i32", fp); if (I->result_word) fputs(".result_word", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->bytes2) fputs(".bytes", fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_LSHIFT_OR_I32: fputs("LSHIFT_OR.i32", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_LSHIFT_OR_V2I16: fputs("LSHIFT_OR.v2i16", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_LSHIFT_OR_V4I8: fputs("LSHIFT_OR.v4i8", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_LSHIFT_XOR_I32: fputs("LSHIFT_XOR.i32", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_LSHIFT_XOR_V2I16: fputs("LSHIFT_XOR.v2i16", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_LSHIFT_XOR_V4I8: fputs("LSHIFT_XOR.v4i8", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_MKVEC_V2I16: fputs("MKVEC.v2i16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lane_as_str(I->swizzle[1].lane), fp); fputs("\n", fp); return; case BI_MKVEC_V4I8: fputs("MKVEC.v4i8 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lane_as_str(I->swizzle[1].lane), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs(bi_lane_as_str(I->swizzle[3].lane), fp); fputs("\n", fp); return; case BI_MOV_I32: fputs("MOV.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_NOP_I32: fputs("NOP.i32 ", fp); bi_print_index(I->dest[0], fp); fputs("\n", fp); return; case BI_POPCOUNT_I32: fputs("POPCOUNT.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_QUIET_F32: fputs("QUIET.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_QUIET_V2F16: fputs("QUIET.v2f16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_RROT_DOUBLE_I32: fputs("RROT_DOUBLE.i32", fp); if (I->result_word) fputs(".result_word", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->bytes2) fputs(".bytes", fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_RSHIFT_AND_I32: fputs("RSHIFT_AND.i32", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_RSHIFT_AND_V2I16: fputs("RSHIFT_AND.v2i16", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_RSHIFT_AND_V4I8: fputs("RSHIFT_AND.v4i8", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_RSHIFT_DOUBLE_I32: fputs("RSHIFT_DOUBLE.i32", fp); if (I->result_word) fputs(".result_word", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->bytes2) fputs(".bytes", fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_RSHIFT_OR_I32: fputs("RSHIFT_OR.i32", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_RSHIFT_OR_V2I16: fputs("RSHIFT_OR.v2i16", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_RSHIFT_OR_V4I8: fputs("RSHIFT_OR.v4i8", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->not[1]) fputs(".not", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_RSHIFT_XOR_I32: fputs("RSHIFT_XOR.i32", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lane_as_str(I->swizzle[2].lane), fp); fputs("\n", fp); return; case BI_RSHIFT_XOR_V2I16: fputs("RSHIFT_XOR.v2i16", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_RSHIFT_XOR_V4I8: fputs("RSHIFT_XOR.v4i8", fp); if (I->not_result) fputs(".not_result", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs(bi_lanes_as_str(I->swizzle[2].lanes), fp); fputs("\n", fp); return; case BI_S16_TO_S32: fputs("S16_TO_S32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_S8_TO_S32: fputs("S8_TO_S32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_SEG_ADD: fputs("SEG_ADD", fp); fputs(bi_seg_as_str(I->seg), fp); if (I->preserve_null) fputs(".preserve_null", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_SEG_SUB: fputs("SEG_SUB", fp); fputs(bi_seg_as_str(I->seg), fp); if (I->preserve_null) fputs(".preserve_null", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_SHADDXL_I64: fputs("SHADDXL.i64 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fprintf(fp, ", shift:%u", I->shift); fputs("\n", fp); return; case BI_SHADDXL_S32: fputs("SHADDXL.s32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lane_as_str(I->swizzle[1].lane), fp); fprintf(fp, ", shift:%u", I->shift); fputs("\n", fp); return; case BI_SHADDXL_U32: fputs("SHADDXL.u32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lane_as_str(I->swizzle[1].lane), fp); fprintf(fp, ", shift:%u", I->shift); fputs("\n", fp); return; case BI_U16_TO_U32: fputs("U16_TO_U32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_U8_TO_U32: fputs("U8_TO_U32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_V2F32_TO_V2F16: fputs("V2F32_TO_V2F16", fp); fputs(bi_clamp_as_str(I->clamp), fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); if (I->neg[0]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->abs[1]) fputs(".abs", fp); if (I->neg[1]) fputs(".neg", fp); fputs("\n", fp); return; case BI_VN_ASST1_F16: fputs("VN_ASST1.f16", fp); if (I->h) fputs(".h", fp); if (I->l) fputs(".l", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->neg[2]) fputs(".neg", fp); fputs("\n", fp); return; case BI_VN_ASST1_F32: fputs("VN_ASST1.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->neg[2]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[3], fp); fputs("\n", fp); return; case BI_ACMPSTORE_I32: fputs("ACMPSTORE.i32", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ACMPSTORE_I64: fputs("ACMPSTORE.i64", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ACMPXCHG_I32: fputs("ACMPXCHG.i32", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ACMPXCHG_I64: fputs("ACMPXCHG.i64", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ATEST: fputs("ATEST ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs("\n", fp); return; case BI_ATOM_CX: fputs("ATOM_CX ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_AXCHG_I32: fputs("AXCHG.i32", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_AXCHG_I64: fputs("AXCHG.i64", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BARRIER: fputs("BARRIER ", fp); bi_print_index(I->dest[0], fp); fputs("\n", fp); return; case BI_BLEND: fputs("BLEND ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BRANCH_F16: fputs("BRANCH.f16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BRANCH_F32: fputs("BRANCH.f32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BRANCH_I16: fputs("BRANCH.i16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BRANCH_I32: fputs("BRANCH.i32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BRANCH_S16: fputs("BRANCH.s16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BRANCH_S32: fputs("BRANCH.s32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BRANCH_U16: fputs("BRANCH.u16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BRANCH_U32: fputs("BRANCH.u32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_BRANCHC_I16: fputs("BRANCHC.i16", fp); if (I->combine) fputs(".combine", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCHC_I32: fputs("BRANCHC.i32", fp); if (I->combine) fputs(".combine", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCHZ_F16: fputs("BRANCHZ.f16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCHZ_F32: fputs("BRANCHZ.f32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCHZ_I16: fputs("BRANCHZ.i16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCHZ_I32: fputs("BRANCHZ.i32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCHZ_S16: fputs("BRANCHZ.s16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCHZ_S32: fputs("BRANCHZ.s32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCHZ_U16: fputs("BRANCHZ.u16", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCHZ_U32: fputs("BRANCHZ.u32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCH_DIVERG: fputs("BRANCH_DIVERG ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_BRANCH_LOWBITS_F32: fputs("BRANCH_LOWBITS.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_BRANCH_NO_DIVERG: fputs("BRANCH_NO_DIVERG ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_CLPER_V6_I32: fputs("CLPER_V6.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_CLPER_V7_I32: fputs("CLPER_V7.i32", fp); fputs(bi_lane_op_as_str(I->lane_op), fp); fputs(bi_subgroup_as_str(I->subgroup), fp); fputs(bi_inactive_result_as_str(I->inactive_result), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_CUBEFACE2: fputs("CUBEFACE2 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_CUBE_SSEL: fputs("CUBE_SSEL ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->neg[1]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_CUBE_TSEL: fputs("CUBE_TSEL ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->neg[1]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_DISCARD_F32: fputs("DISCARD.f32", fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_widen_as_str(I->swizzle[1].widen), fp); fputs("\n", fp); return; case BI_DOORBELL: fputs("DOORBELL ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_EUREKA: fputs("EUREKA ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_F16_TO_S32: fputs("F16_TO_S32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_F16_TO_U32: fputs("F16_TO_U32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_F32_TO_S32: fputs("F32_TO_S32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_F32_TO_U32: fputs("F32_TO_U32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_FADD_RSCALE_F32: fputs("FADD_RSCALE.f32", fp); fputs(bi_clamp_as_str(I->clamp), fp); fputs(bi_special_as_str(I->special), fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); if (I->abs[0]) fputs(".abs", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->abs[1]) fputs(".abs", fp); if (I->neg[1]) fputs(".neg", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_FATAN_ASSIST_F16: fputs("FATAN_ASSIST.f16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lane_as_str(I->swizzle[1].lane), fp); fputs("\n", fp); return; case BI_FATAN_ASSIST_F32: fputs("FATAN_ASSIST.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_FATAN_TABLE_F16: fputs("FATAN_TABLE.f16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lane_as_str(I->swizzle[1].lane), fp); fputs("\n", fp); return; case BI_FATAN_TABLE_F32: fputs("FATAN_TABLE.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_FCOS_TABLE_U6: fputs("FCOS_TABLE.u6", fp); if (I->offset) fputs(".offset", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_FEXP_F32: fputs("FEXP.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_FEXP_TABLE_U4: fputs("FEXP_TABLE.u4", fp); fputs(bi_adj_as_str(I->adj), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_FLOGD_F32: fputs("FLOGD.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_FLOG_TABLE_F32: fputs("FLOG_TABLE.f32", fp); fputs(bi_mode_as_str(I->mode), fp); fputs(bi_precision_as_str(I->precision), fp); if (I->neg) fputs(".neg", fp); if (I->divzero) fputs(".divzero", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); if (I->abs[0]) fputs(".abs", fp); fputs("\n", fp); return; case BI_FMAX_F32: fputs("FMAX.f32", fp); fputs(bi_clamp_as_str(I->clamp), fp); fputs(bi_sem_as_str(I->sem), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); if (I->abs[0]) fputs(".abs", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->abs[1]) fputs(".abs", fp); if (I->neg[1]) fputs(".neg", fp); fputs("\n", fp); return; case BI_FMAX_V2F16: fputs("FMAX.v2f16", fp); fputs(bi_sem_as_str(I->sem), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); if (I->neg[0]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->abs[1]) fputs(".abs", fp); if (I->neg[1]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[1].swz), fp); fputs("\n", fp); return; case BI_FMIN_F32: fputs("FMIN.f32", fp); fputs(bi_clamp_as_str(I->clamp), fp); fputs(bi_sem_as_str(I->sem), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); if (I->abs[0]) fputs(".abs", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->abs[1]) fputs(".abs", fp); if (I->neg[1]) fputs(".neg", fp); fputs("\n", fp); return; case BI_FMIN_V2F16: fputs("FMIN.v2f16", fp); fputs(bi_sem_as_str(I->sem), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); if (I->neg[0]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->abs[1]) fputs(".abs", fp); if (I->neg[1]) fputs(".neg", fp); fputs(bi_swz_as_str(I->swizzle[1].swz), fp); fputs("\n", fp); return; case BI_FPCLASS_F16: fputs("FPCLASS.f16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_FPCLASS_F32: fputs("FPCLASS.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_FPOW_SC_APPLY: fputs("FPOW_SC_APPLY ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_FPOW_SC_DET_F16: fputs("FPOW_SC_DET.f16", fp); fputs(bi_func_as_str(I->func), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lane_as_str(I->swizzle[1].lane), fp); fputs("\n", fp); return; case BI_FPOW_SC_DET_F32: fputs("FPOW_SC_DET.f32", fp); fputs(bi_func_as_str(I->func), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_FRCBRT_APPROX_A_F32: fputs("FRCBRT_APPROX_A.f32", fp); if (I->neg) fputs(".neg", fp); if (I->divzero) fputs(".divzero", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); if (I->abs[0]) fputs(".abs", fp); fputs("\n", fp); return; case BI_FRCBRT_APPROX_B_F32: fputs("FRCBRT_APPROX_B.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_FRCBRT_APPROX_C_F32: fputs("FRCBRT_APPROX_C.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_FRCP_F16: fputs("FRCP.f16", fp); if (I->neg) fputs(".neg", fp); if (I->divzero) fputs(".divzero", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_FRCP_F32: fputs("FRCP.f32", fp); if (I->neg) fputs(".neg", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); if (I->abs[0]) fputs(".abs", fp); fputs("\n", fp); return; case BI_FRCP_APPROX_F32: fputs("FRCP_APPROX.f32", fp); if (I->neg) fputs(".neg", fp); if (I->divzero) fputs(".divzero", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); if (I->abs[0]) fputs(".abs", fp); fputs("\n", fp); return; case BI_FRSQ_F16: fputs("FRSQ.f16", fp); if (I->neg) fputs(".neg", fp); if (I->divzero) fputs(".divzero", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->abs[0]) fputs(".abs", fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_FRSQ_F32: fputs("FRSQ.f32", fp); if (I->neg) fputs(".neg", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); if (I->abs[0]) fputs(".abs", fp); fputs("\n", fp); return; case BI_FRSQ_APPROX_F32: fputs("FRSQ_APPROX.f32", fp); if (I->neg) fputs(".neg", fp); if (I->divzero) fputs(".divzero", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); if (I->abs[0]) fputs(".abs", fp); fputs("\n", fp); return; case BI_FSINCOS_OFFSET_U6: fputs("FSINCOS_OFFSET.u6", fp); if (I->scale) fputs(".scale", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_FSIN_TABLE_U6: fputs("FSIN_TABLE.u6", fp); if (I->offset) fputs(".offset", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_HADD_S32: fputs("HADD.s32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_HADD_U32: fputs("HADD.u32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_HADD_V2S16: fputs("HADD.v2s16", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->swap[0]) fputs(".swap", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->swap[1]) fputs(".swap", fp); fputs("\n", fp); return; case BI_HADD_V2U16: fputs("HADD.v2u16", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->swap[0]) fputs(".swap", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->swap[1]) fputs(".swap", fp); fputs("\n", fp); return; case BI_HADD_V4S8: fputs("HADD.v4s8", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_HADD_V4U8: fputs("HADD.v4u8", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_IABS_S32: fputs("IABS.s32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_IABS_V2S16: fputs("IABS.v2s16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_IABS_V4S8: fputs("IABS.v4s8 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_IADD_S32: fputs("IADD.s32", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_IADD_U32: fputs("IADD.u32", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_IADD_V2S16: fputs("IADD.v2s16", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lanes_as_str(I->swizzle[0].lanes), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_IADD_V2U16: fputs("IADD.v2u16", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lanes_as_str(I->swizzle[0].lanes), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_IADD_V4S8: fputs("IADD.v4s8", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lanes_as_str(I->swizzle[0].lanes), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_IADD_V4U8: fputs("IADD.v4u8", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lanes_as_str(I->swizzle[0].lanes), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_ICMP_I32: fputs("ICMP.i32", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ICMP_S32: fputs("ICMP.s32", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ICMP_U32: fputs("ICMP.u32", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ICMP_V2I16: fputs("ICMP.v2i16", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_swz_as_str(I->swizzle[1].swz), fp); fputs("\n", fp); return; case BI_ICMP_V2S16: fputs("ICMP.v2s16", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_swz_as_str(I->swizzle[1].swz), fp); fputs("\n", fp); return; case BI_ICMP_V2U16: fputs("ICMP.v2u16", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_swz_as_str(I->swizzle[1].swz), fp); fputs("\n", fp); return; case BI_ICMP_V4I8: fputs("ICMP.v4i8", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ICMP_V4S8: fputs("ICMP.v4s8", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ICMP_V4U8: fputs("ICMP.v4u8", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ICMPF_I32: fputs("ICMPF.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_ICMPI_I32: fputs("ICMPI.i32", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ICMPI_S32: fputs("ICMPI.s32", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ICMPI_U32: fputs("ICMPI.u32", fp); fputs(bi_result_type_as_str(I->result_type), fp); fputs(bi_cmpf_as_str(I->cmpf), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ICMPM_I32: fputs("ICMPM.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_ILOGB_F32: fputs("ILOGB.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs("\n", fp); return; case BI_ILOGB_V2F16: fputs("ILOGB.v2f16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_IMOV_FMA: fputs("IMOV_FMA", fp); if (I->threads) fputs(".threads", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs("\n", fp); return; case BI_ISUB_S32: fputs("ISUB.s32", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_ISUB_U32: fputs("ISUB.u32", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_ISUB_V2S16: fputs("ISUB.v2s16", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lanes_as_str(I->swizzle[0].lanes), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_ISUB_V2U16: fputs("ISUB.v2u16", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lanes_as_str(I->swizzle[0].lanes), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_ISUB_V4S8: fputs("ISUB.v4s8", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lanes_as_str(I->swizzle[0].lanes), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_ISUB_V4U8: fputs("ISUB.v4u8", fp); if (I->saturate) fputs(".saturate", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lanes_as_str(I->swizzle[0].lanes), fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(bi_lanes_as_str(I->swizzle[1].lanes), fp); fputs("\n", fp); return; case BI_JUMP: fputs("JUMP ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_KABOOM: fputs("KABOOM ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_LDEXP_F32: fputs("LDEXP.f32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LDEXP_V2F16: fputs("LDEXP.v2f16", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LD_ATTR: fputs("LD_ATTR", fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_LD_ATTR_IMM: fputs("LD_ATTR_IMM", fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fprintf(fp, ", attribute_index:%u", I->attribute_index); fputs("\n", fp); return; case BI_LD_ATTR_TEX: fputs("LD_ATTR_TEX", fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_LD_CVT: fputs("LD_CVT", fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_LD_GCLK_U64: fputs("LD_GCLK.u64", fp); fputs(bi_source_as_str(I->source), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs("\n", fp); return; case BI_LD_TILE: fputs("LD_TILE", fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_LD_VAR: fputs("LD_VAR", fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(bi_update_as_str(I->update), fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(bi_sample_as_str(I->sample), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LD_VAR_FLAT: fputs("LD_VAR_FLAT", fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(bi_function_as_str(I->function), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_LD_VAR_FLAT_IMM: fputs("LD_VAR_FLAT_IMM", fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(bi_function_as_str(I->function), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fprintf(fp, ", index:%u", I->index); fputs("\n", fp); return; case BI_LD_VAR_IMM: fputs("LD_VAR_IMM", fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(bi_update_as_str(I->update), fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(bi_sample_as_str(I->sample), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fprintf(fp, ", index:%u", I->index); fputs("\n", fp); return; case BI_LD_VAR_SPECIAL: fputs("LD_VAR_SPECIAL", fp); fputs(bi_varying_name_as_str(I->varying_name), fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(bi_update_as_str(I->update), fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(bi_sample_as_str(I->sample), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_LEA_ATTR: fputs("LEA_ATTR", fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_LEA_ATTR_IMM: fputs("LEA_ATTR_IMM", fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fprintf(fp, ", attribute_index:%u", I->attribute_index); fputs("\n", fp); return; case BI_LEA_ATTR_TEX: fputs("LEA_ATTR_TEX", fp); fputs(bi_register_format_as_str(I->register_format), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_LEA_TEX: fputs("LEA_TEX", fp); if (I->format) fputs(".format", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_LEA_TEX_IMM: fputs("LEA_TEX_IMM", fp); if (I->format) fputs(".format", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fprintf(fp, ", texture_index:%u", I->texture_index); fputs("\n", fp); return; case BI_LOAD_I128: fputs("LOAD.i128", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LOAD_I16: fputs("LOAD.i16", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(bi_lane_as_str(I->lane), fp); fputs(bi_extend_as_str(I->extend), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LOAD_I24: fputs("LOAD.i24", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LOAD_I32: fputs("LOAD.i32", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(bi_lane_as_str(I->lane), fp); fputs(bi_extend_as_str(I->extend), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LOAD_I48: fputs("LOAD.i48", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LOAD_I64: fputs("LOAD.i64", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LOAD_I8: fputs("LOAD.i8", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(bi_lane_as_str(I->lane), fp); fputs(bi_extend_as_str(I->extend), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LOAD_I96: fputs("LOAD.i96", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_LOGB_F32: fputs("LOGB.f32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_widen_as_str(I->swizzle[0].widen), fp); fputs("\n", fp); return; case BI_LOGB_V2F16: fputs("LOGB.v2f16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_MUX_I32: fputs("MUX.i32", fp); fputs(bi_mux_as_str(I->mux), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_MUX_V2I16: fputs("MUX.v2i16", fp); fputs(bi_mux_as_str(I->mux), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->swap[0]) fputs(".swap", fp); fputs(", ", fp); bi_print_index(I->src[1], fp); if (I->swap[1]) fputs(".swap", fp); fputs(", ", fp); bi_print_index(I->src[2], fp); if (I->swap[2]) fputs(".swap", fp); fputs("\n", fp); return; case BI_MUX_V4I8: fputs("MUX.v4i8", fp); fputs(bi_mux_as_str(I->mux), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_S16_TO_F32: fputs("S16_TO_F32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_S32_TO_F32: fputs("S32_TO_F32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_S8_TO_F32: fputs("S8_TO_F32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_SHADDXH_I32: fputs("SHADDXH.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_SHIFT_DOUBLE_I32: fputs("SHIFT_DOUBLE.i32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_STORE_I128: fputs("STORE.i128", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_STORE_I16: fputs("STORE.i16", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_STORE_I24: fputs("STORE.i24", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_STORE_I32: fputs("STORE.i32", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_STORE_I48: fputs("STORE.i48", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_STORE_I64: fputs("STORE.i64", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_STORE_I8: fputs("STORE.i8", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_STORE_I96: fputs("STORE.i96", fp); fputs(bi_seg_as_str(I->seg), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs("\n", fp); return; case BI_ST_CVT: fputs("ST_CVT", fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_ST_TILE: fputs("ST_TILE", fp); fputs(bi_vecsize_as_str(I->vecsize), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_SWZ_V2I16: fputs("SWZ.v2i16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_SWZ_V4I8: fputs("SWZ.v4i8 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_TEXC: fputs("TEXC", fp); if (I->skip) fputs(".skip", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; case BI_TEXS_2D_F16: fputs("TEXS_2D.f16", fp); if (I->skip) fputs(".skip", fp); if (I->lod_mode) fputs(".lod_mode", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fprintf(fp, ", sampler_index:%u", I->sampler_index); fprintf(fp, ", texture_index:%u", I->texture_index); fputs("\n", fp); return; case BI_TEXS_2D_F32: fputs("TEXS_2D.f32", fp); if (I->skip) fputs(".skip", fp); if (I->lod_mode) fputs(".lod_mode", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fprintf(fp, ", sampler_index:%u", I->sampler_index); fprintf(fp, ", texture_index:%u", I->texture_index); fputs("\n", fp); return; case BI_TEXS_CUBE_F16: fputs("TEXS_CUBE.f16", fp); if (I->skip) fputs(".skip", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fprintf(fp, ", sampler_index:%u", I->sampler_index); fprintf(fp, ", texture_index:%u", I->texture_index); fputs("\n", fp); return; case BI_TEXS_CUBE_F32: fputs("TEXS_CUBE.f32", fp); if (I->skip) fputs(".skip", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fprintf(fp, ", sampler_index:%u", I->sampler_index); fprintf(fp, ", texture_index:%u", I->texture_index); fputs("\n", fp); return; case BI_U16_TO_F32: fputs("U16_TO_F32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_U32_TO_F32: fputs("U32_TO_F32", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs("\n", fp); return; case BI_U8_TO_F32: fputs("U8_TO_F32 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_lane_as_str(I->swizzle[0].lane), fp); fputs("\n", fp); return; case BI_V2F16_TO_V2S16: fputs("V2F16_TO_V2S16", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_V2F16_TO_V2U16: fputs("V2F16_TO_V2U16", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_V2S16_TO_V2F16: fputs("V2S16_TO_V2F16", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_V2S8_TO_V2F16: fputs("V2S8_TO_V2F16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_V2S8_TO_V2S16: fputs("V2S8_TO_V2S16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_V2U16_TO_V2F16: fputs("V2U16_TO_V2F16", fp); fputs(bi_round_as_str(I->round), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_V2U8_TO_V2F16: fputs("V2U8_TO_V2F16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_V2U8_TO_V2U16: fputs("V2U8_TO_V2U16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(bi_swz_as_str(I->swizzle[0].swz), fp); fputs("\n", fp); return; case BI_VAR_TEX_F16: fputs("VAR_TEX.f16", fp); fputs(bi_update_as_str(I->update), fp); if (I->skip) fputs(".skip", fp); if (I->lod_mode) fputs(".lod_mode", fp); fputs(bi_sample_as_str(I->sample), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fprintf(fp, ", texture_index:%u", I->texture_index); fprintf(fp, ", varying_index:%u", I->varying_index); fputs("\n", fp); return; case BI_VAR_TEX_F32: fputs("VAR_TEX.f32", fp); fputs(bi_update_as_str(I->update), fp); if (I->skip) fputs(".skip", fp); if (I->lod_mode) fputs(".lod_mode", fp); fputs(bi_sample_as_str(I->sample), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fprintf(fp, ", texture_index:%u", I->texture_index); fprintf(fp, ", varying_index:%u", I->varying_index); fputs("\n", fp); return; case BI_VN_ASST2_F32: fputs("VN_ASST2.f32", fp); if (I->scale) fputs(".scale", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); fputs("\n", fp); return; case BI_VN_ASST2_V2F16: fputs("VN_ASST2.v2f16 ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); if (I->neg[0]) fputs(".neg", fp); fputs("\n", fp); return; case BI_WMASK: fputs("WMASK", fp); fputs(bi_subgroup_as_str(I->subgroup), fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fprintf(fp, ", fill:%u", I->fill); fputs("\n", fp); return; case BI_ZS_EMIT: fputs("ZS_EMIT", fp); if (I->stencil) fputs(".stencil", fp); if (I->z) fputs(".z", fp); fputs(" ", fp); bi_print_index(I->dest[0], fp); fputs(", ", fp); bi_print_index(I->src[0], fp); fputs(", ", fp); bi_print_index(I->src[1], fp); fputs(", ", fp); bi_print_index(I->src[2], fp); fputs("\n", fp); return; } unreachable("Invalid opcode"); } #endif